Commit Graph

49486 Commits

Author SHA1 Message Date
MIHIRA Sanpei Yoshiro
e99e85532a Add support nForce3 250 audio
PR:		kern/71726
Submitted by:	FUJIMOTO Kou <fujimoto@j.dendai.ac.jp>
MFC after:	1 week
2004-09-20 05:59:17 +00:00
Nate Lawson
520467d3ba Record a problem we can't workaround for now regarding duplicate interrupts
because of links left enabled while in APIC mode.  A large scale rework of
irq links is underway by jhb@ which should fix this eventually.
2004-09-20 05:56:01 +00:00
MIHIRA Sanpei Yoshiro
4e526aae71 add '/* Panasonic products */' line(I removed it) 2004-09-20 04:56:13 +00:00
Marius Strobl
9aee2491ec Fix compilation of vinum(4) when VINUMDEBUG is not defined.
PR:		71341
Submitted by:	Phil Budne <phil@tripadvisor.com>
MT5 candidate.
2004-09-20 00:13:10 +00:00
Marius Strobl
46b3f0f811 Correct value and description of the unused MK48TXX_WDAY_FT macro. 2004-09-20 00:09:32 +00:00
Poul-Henning Kamp
e8f89940e2 Commit the new version of the adlink driver which can do non-cyclic
capture.  Now we just need somebody to write a gnu-radio frontend :-)
2004-09-19 21:52:15 +00:00
Marius Strobl
6b1c98e2be - Some of the upper bits of the time related (seconds, minutes, etc.)
registers are control bits or depending on the model contain additional
  time bits with a different meaning than the lower ones. In order to
  only read the desired time bits and not change the upper bits on write
  use appropriate masks in the gettime and settime function respectively.
  Due to the polarity of the stop oscillator bit and the fact that the
  century bits aren't used on sparc64 not masking them didn't cause
  problems so far.
- Fix two off-by-one errors in the handling of the day of week. The
  genclock code represents the dow as 0 - 6 with 0 being Sunday but the
  mk48txx use 1 - 7 with 1 being Sunday. In the settime function when
  writing the dow to the clock the range wasn't adjusted accordingly but
  the clock apparently played along nicely otherwise the second bug in
  the gettime function which mapped 1 - 7 to 0 - 6 but with 0 meaning
  Saturday would have been triggered. Fixing these makes the date being
  stored in the same format Sun/Solaris uses and cures the "Invalid time
  in real time clock. Check and reset the date immediately!" when the
  date was set under Solaris prior to booting FreeBSD/sparc64. [1]
  Looking at other clock drivers/code e.g. FreeBSD/alpha the former "bug",
  i.e. storing the dow as 0 - 6 even when the clock uses 1 - 7, seems to
  be common but might be on purpose for compatibility when multi-booting
  with other OS which do the same. So it might make sense to add a flag
  to handle the dow off-by-one for use of this driver on platforms other
  than sparc64.
- Check the state of the battery on mk48txx that support this in the
  attach function.
- Add a note that use of the century bit should be implemented but isn't
  required at the moment because it isn't used on sparc64.

Problem noted by:	joerg [1]
MT5 candidate.
2004-09-19 21:38:11 +00:00
Alan Cox
de6c3db01f Simplify the reference counting of page table pages. Specifically, use
the page table page's wired count rather than its hold count to contain
the reference count.  My rationale for this change is based on several
factors:

1. The machine-independent and pmap layers used the same hold count field
   in subtly different ways.  The machine-independent layer uses the hold
   count to implement a form of ephemeral wiring that is used by pipes,
   physio, etc.  In other words, subsystems where we wish to temporarily
   block a page from being swapped out while it is mapped into the kernel's
   address space.  Such pages are never removed from the page queues.
   Instead, the page daemon recognizes a non-zero hold count to mean "hands
   off this page."  In contrast, page table pages are never in the page
   queues; they are wired from birth to death.  The hold count was being
   used as a kind of reference count, specifically, the number of valid
   page table entries within the page.  Not surprisingly, these two
   different uses imply different synchronization rules: in the machine-
   independent layer access to the hold count requires the page queues
   lock; whereas in the pmap layer the pmap lock is required.  Thus,
   continued use by the pmap layer of vm_page_unhold(), which asserts that
   the page queues lock is held, made no sense.

2. _pmap_unwire_pte_hold() was too forgiving in its handling of the wired
   count.  An unexpected wired count on a page table page was ignored and
   the underlying page leaked.

3. In a word, microoptimization.  Using the wired count exclusively, rather
   than a combination of the wired and hold counts, makes the code slightly
   smaller and faster.

Reviewed by: tegge@
2004-09-19 21:20:01 +00:00
David Schultz
8daa8c602a The zone from which proc structures are allocated is marked
UMA_ZONE_NOFREE to guarantee type stability, so proc_fini() should
never be called.  Move an assertion from proc_fini() to proc_dtor()
and garbage-collect the rest of the unreachable code.  I have retained
vm_proc_dispose(), since I consider its disuse a bug.
2004-09-19 18:34:17 +00:00
John-Mark Gurney
81d4eca1ef fix misspelling of TX...
Submitted by:	Johan Karlsson
MFC after:	3 days
2004-09-19 18:16:28 +00:00
John-Mark Gurney
6102153685 spell RX correctly
don't call re_rxeof a second time when we've already done the work
pull common code out from if and else clauses

MFC after:	3 days
2004-09-19 17:51:41 +00:00
John-Mark Gurney
efefe913d2 comment requirement that rx/tx descriptor counts must be equal due to
shared code...
define rx descriptor count in terms of tx
align defines

MFC after:	3 days
2004-09-19 17:45:56 +00:00
Max Khon
9cf3607da2 Use correct malloc type when freeing memory allocated by g_read_data.
PR:		71431
Submitted by:	daichi
2004-09-19 10:27:46 +00:00
Poul-Henning Kamp
d705e025d0 The getpages VOP was a good stab at getting scatter/gather I/O without
too much kernel copying, but it is not the right way to do it, and it is
in the way for straightening out the buffer cache.

The right way is to pass the VM page array down through the struct
bio to the disk device driver and DMA directly in to/out off the
physical memory.  Once the VM/buf thing is sorted out it is next on
the list.

Retire most of vnode method. ffs_getpages().  It is not clear if what is
left shouldn't be in the default implementation which we now fall back to.

Retire specfs_getpages() as well, as it has no users now.
2004-09-19 08:14:55 +00:00
Alan Cox
6134d96917 MFamd64/i386
Avoid recomputing PHYS_TO_VM_PAGE() unnecessarily in pmap_protect().
2004-09-19 05:34:49 +00:00
Marcel Moolenaar
13e6668525 MFp4:
Completely remove the remaining EFI includes and add our own (type)
definitions instead. While here, abstract more of the internals by
providing interface functions.
2004-09-19 03:50:46 +00:00
Alan Cox
8478ea241b Remove an outdated assertion from _pmap_allocpte(). (When vm_page_alloc()
succeeds, the page's queue field is unconditionally set to PQ_NONE by
vm_pageq_remove_nowakeup().)
2004-09-19 02:39:31 +00:00
Matt Jacob
b3940a8730 Put in a commented out ispfw device under isp and note that this is usually
a module.
2004-09-19 00:52:22 +00:00
Alan Cox
7580b56bdc Release the page queues lock earlier in pmap_protect() and pmap_remove() in
order to reduce contention.
2004-09-18 22:56:58 +00:00
Marcel Moolenaar
6e2faf455e Remove useless include of <machine/fpu.h>. 2004-09-18 21:18:44 +00:00
Ian Dowse
abb67fff1c Add Sitecom's LN-029 USB 2.0 Ethernet adapter. 2004-09-18 19:48:10 +00:00
Maxime Henrion
048ca166ff Add support for the fxp(4) based card in ICH6 (i915) chipsets.
This is a RELENG_5 candidate.

Submitted by:	Mike Tancsa <mike@sentex.net>
2004-09-18 19:13:13 +00:00
John-Mark Gurney
80a2a305b2 pass in pointer to m_head to re_encap because m_defrag could free the
original mbuf causing a free'd mbuf passed to bpf later and panic'ing the
system..  This should only effect jumbo frames.

MFC after:	5 days
2004-09-18 18:08:28 +00:00
Lukas Ertl
b916fcec4d Single concat or striped plexes don't need no special initialization
if their subdisks are all available, so let them be brought up.
2004-09-18 18:03:20 +00:00
Poul-Henning Kamp
9e16d66689 Initialize new ttys a bit more.
Check TS_GONE flag for gone-ness.
2004-09-18 17:02:18 +00:00
Poul-Henning Kamp
9e51d6f15d Use tty->t_sc to find out softc. 2004-09-18 16:43:44 +00:00
Lukas Ertl
67e3ab6ee5 Re-vamp how I/O is handled in volumes and plexes.
Analogous to the drive level, give each volume and plex a worker thread
that picks up and processes incoming and completed BIOs.

This should fix the data corruption issues that have come up a few
weeks ago and improve performance, especially of RAID5 plexes.

The volume level needs a little work, though.
2004-09-18 13:44:43 +00:00
Pawel Jakub Dawidek
e4cdd0d4b5 Actually this order (unlock, wakeup) in this case is race-safe and can
save us 2 context switches.

Explained by:	njl
2004-09-18 09:16:19 +00:00
Brooks Davis
71672bb6f6 Log the renaming of an interface. This should make it easier to follow
kernel log files.
2004-09-18 05:02:08 +00:00
John Baldwin
ca9b2364c3 A long, long time ago in a CVS branch far away (specifically, HEAD prior
to 4.0 and RELENG_3), the BTX mini-kernel used paging rather than flat
mode and clients were limited to a virtual address space of 16 megabytes.
Because of this limitation, boot2 silently masked all physical addresses
in any binaries it loaded so that they were always loaded into the first
16 Meg.  Since BTX no longer has this limitation (and hasn't for a long
time), remove the masking from boot2.  This allows boot2 to load kernels
larger than about 12 to 14 meg (12 for non-PAE, 14 for PAE).

Submitted by:	Sergey Lyubka devnull at uptsoft dot com
MFC after:	1 month
2004-09-18 02:07:00 +00:00
Yoshihiro Takahashi
cede9ec016 MFi386: revision 1.56 (Add -fno-unit-at-a-time to CFLAGS). 2004-09-18 00:12:04 +00:00
Marcel Moolenaar
ddf4122592 Move makectx() after kdb_cpu_trap(), so the PCB will have possible MD
corrections made to the trapframe. This is more logical.
2004-09-17 22:27:23 +00:00
Poul-Henning Kamp
08d79b63f6 Fix an issue with ng_tty which (ab)used the tty->t_sc field which is
reserved for the device drivers:

Add a t_lsc field for line discipline private use.
2004-09-17 22:26:27 +00:00
Marcel Moolenaar
9f9ae8ebb7 Provide our own FPSWA definitions, instead of depending on the Intel
EFI headers and put them all in <machine/fpu.h>. The Intel EFI headers
conflict with the Intel ACPI headers (duplicate type definitions), so
are being phased out in the kernel.
2004-09-17 22:19:41 +00:00
Marcel Moolenaar
cba8d3ae49 Remove useless inclusion of <machine/fpu.h> 2004-09-17 20:42:45 +00:00
Gleb Smirnoff
0b7925df73 - Remove advertising clause from copyright [1]
- Change my email to glebius@FreeBSD.org

Requested by:	ru [1]
2004-09-17 19:58:03 +00:00
Bruce M Simpson
6120a003b4 Fix compiler warnings, when __stdcall is #defined, by adding explicit casts.
These normally only manifest if the ndis compat module is statically
compiled into a kernel image by way of 'options NDISAPI'.

Submitted by:	Dmitri Nikulin
Approved by:	wpaul
PR:		kern/71449
MFC after:	1 week
2004-09-17 19:54:26 +00:00
Poul-Henning Kamp
dfcb390b5b Fix compilation again. 2004-09-17 19:24:58 +00:00
Warner Losh
27df52f999 The long dead hand of the past has pushed forward useless bits in this
driver.  Trim its fingernails by removing some useless bits before
fixing the 'thread not terminated on detach' problem.

o dmacnt is no longer used now that we allocate at attach time.  Remove
  it from struct fdc_data.
o ISPNP was only ever set, but never tested.  It used to be used for the
  allocation routines to change how it allocated resources.  Since that's
  no longer necessary, retire the flag.
o ISPCMICA was only ever tested, but never set.  GC it.  This removes
  a special case in determining the drive type.  The drive type is
  now set in fdc_pcmcia.c, so the hack isn't needed anymore.  Sadly,
  this isn't tested with a Y-E Data pcmcia floppy drive because there
  are a number of other issues that preclude it from working.
o Fix ifdef for reading from the rtc.  I'm of the opinion that this ifdef
  should be moved into fdc_isa.c, but not today as ideally there'd be
  other fixes to the probing of children.  So now we just read it on
  i386 ! pc98 (there's no #define for MACHINE_ARCH, just MACHINE, hence
  this slightly inelegant kludge) and amd64.  The PC98 exclusion likely
  isn't meaningful since pc98 uses a different driver, but will be when
  merging of the pc98 floppy code into this driver is complete (this is the
  other reason I think this block of code belongs outside fdc.c).

All of these changes are safe to MT5.
2004-09-17 18:50:38 +00:00
Poul-Henning Kamp
d75207f145 Overhaul ucom serial driver by using generic stuff instead of homerolled
all over the place.
2004-09-17 11:53:45 +00:00
Poul-Henning Kamp
e8d3e08098 Add ttyopen and ttyclose functions which will do the right stuff for
most if not all of our tty drivers in the future.

Centralizing this stuff enables us to remove about 100 lines of
almost but not quite perfectly copy&paste code from each tty driver.
2004-09-17 11:43:35 +00:00
Poul-Henning Kamp
c483711411 forward declare struct cdev, not cdevsw; 2004-09-17 11:39:56 +00:00
Poul-Henning Kamp
216d5bb528 Allocate tty at attach time instead of open time. 2004-09-17 11:04:57 +00:00
Poul-Henning Kamp
c7076ea1b8 Be slightly less bogus in struct tty allocation. 2004-09-17 11:02:53 +00:00
Poul-Henning Kamp
b6fa152c44 Use tty->t_sc, ttyalloc() and lock/init termios from struct tty. 2004-09-17 10:59:17 +00:00
Poul-Henning Kamp
ead167465e Include <sys/malloc.h> to satisfy new isa_dma stuff. 2004-09-17 10:55:01 +00:00
Ruslan Ermilov
e8f7141ed8 Pass the idea of the make(1) binary to use down to newvers.sh.
This is necessary so source upgrades use the correct binary.

MFC after:	3 days

For the record: Problem spotted by Scott Long, who mentioned
that source upgrades from 4.7 to recent 5.x and 6.0 are broken.
Detailed analysis shows that 4.7 has a broken make(1) binary.
A breakage was fixed in RELENG_4 in make/main.c,v 1.35.2.7 by
imp@, though the commit log erroneously stated "MFC 1.68"
while in fact it should have been spelled as "MFC 1.67".
2004-09-17 09:17:33 +00:00
Poul-Henning Kamp
4eb84db65e Add various stuff to struct tty and surounding areas in preparation
for getting stuff from P4::phk_tty into -current.
2004-09-17 08:34:43 +00:00
Poul-Henning Kamp
a45b36ad47 Use ttyalloc() instead of ttymalloc(NULL) 2004-09-17 07:28:07 +00:00
Poul-Henning Kamp
3e6bf9fb86 Add ttyalloc() which in due time will be the successor to ttymalloc(),
but without the "struct tty *" argument.
2004-09-17 06:13:47 +00:00