55966 Commits

Author SHA1 Message Date
jeff
b182d6a287 MFC Rev 1.68
VFS SMP fixes, stack api, softupdates fixes.

Sponsored by:	Isilon Systems, Inc.
Approved by:	re (scottl)
2006-03-13 03:04:00 +00:00
jeff
79eac52c92 MFC Rev 1.11
VFS SMP fixes, stack api, softupdates fixes.

Sponsored by:	Isilon Systems, Inc.
Approved by:	re (scottl)
2006-03-13 03:03:55 +00:00
jeff
1b2823246d MFC Rev 1.72
VFS SMP fixes, stack api, softupdates fixes.

Sponsored by:	Isilon Systems, Inc.
Approved by:	re (scottl)
2006-03-13 03:03:51 +00:00
davidxu
4b62070fb6 MFC revision 1.268, fix KSE stack alignment for gcc.
Approved by: re (scottl)
2006-03-13 02:46:55 +00:00
scottl
c5719df4a5 MFC: Call vfs_destroy_object() before v_data gets set to NULL.
Approved by: re
2006-03-12 21:50:02 +00:00
scottl
329792fe00 MFC: iir works on PAE now.
Approved by: re
2006-03-12 16:39:40 +00:00
scottl
5792ecb96c Update the iir driver to include >4GB support.
Approved by: re
2006-03-12 16:38:28 +00:00
andre
7b2dfff5ed MFC rev. 1.23: Properly handle the case when the packet secondary zone can't allocate
further mbuf clusters to attach to mbufs.

Approved by:	re (scottl)
2006-03-12 16:27:40 +00:00
ariff
2b99a57485 MFC (revision 1.62):
Add inverted amplifier sense quirks for:
[1] Sony VAIO Type T
[2] Kvazar-Micro Senator 3592XT.

PR:		[1] kern/94056
Submitted by:	[1] Yoshihiko Sarumaru <mistral at imasy.or.jp>
             	[2] Alexandr Krivulya <admin at marcom-group.com>
Approved by:	re (scottl)

[2] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-March/003773.html
2006-03-11 19:37:26 +00:00
thompsa
4e1f41f885 MFC r1.151
Further refine the bridge hack in the arp code. Only do the special arp
  handling for interfaces which are actually in the bridge group, ignore all
  others.

Approved by:	re (hrs)
2006-03-11 19:32:44 +00:00
sam
5c0c80d1e4 MFC 1.39: consolidate calculation of capabilities ie
Approved by:	re (scottl)
2006-03-11 19:30:14 +00:00
sam
68f03e9a31 MFC: make driver override of net80211 parameter state consistent with methods
Approved by:	re (scottl)
2006-03-11 19:25:23 +00:00
suz
ceb726c07b MFC Rev 1.26
fixed a bug that an MLD report is not advertised for a group-specific MLD query

Approved by: re(mux)
2006-03-11 10:36:23 +00:00
rik
844e14d622 MFC:
Add support for Cronyx Tau32-PCI adapters. (connect to the build)

Approved by:	re(scottl)
2006-03-10 23:27:41 +00:00
rik
f994482cad MFC:
Add support for Cronyx Tau32-PCI adapters. (update)

Approved by:	re(scottl)
2006-03-10 23:10:39 +00:00
sam
6dbd877373 fix harmless merge botches
Approved by:	re
2006-03-10 22:17:57 +00:00
sam
6a5c8d26db MFC 1.135: drop softc lock around copyin/copyout
Approved by:	re (mux)
2006-03-10 22:14:11 +00:00
sam
d7bfdc50c6 MFC 1.134: fix build w/o AR_DEBUG
Approved by:	re (mux)
2006-03-10 22:12:17 +00:00
sam
e3e79c0153 MFC 1.133: improve tx/rx buf printing routines
Approved by:	re (mux)
2006-03-10 22:10:51 +00:00
sam
5e485325d2 MFC 1.130: use ath_hal_gettxintrtxqs so we only process h/w tx
queues that have an interrupt pending

Approved by:	re (mux)
2006-03-10 22:08:07 +00:00
jhb
025e3d0a95 MFC: Split struct ithd into struct intr_thread and intr_event and
associated changes.  More details below:

  Remove public declarations of variables that were forgotten when they were
  made static.

  Revision  Changes    Path
  1.31      +0 -1      src/sys/sys/interrupt.h

  Make sure the interrupt is masked before processing it, or bad things
  can happen.

  Revision  Changes    Path
  1.10      +3 -3      src/sys/arm/arm/intr.c

  Reorganize the interrupt handling code a bit to make a few things cleaner
  and increase flexibility to allow various different approaches to be tried
  in the future.
  - Split struct ithd up into two pieces.  struct intr_event holds the list
    of interrupt handlers associated with interrupt sources.
    struct intr_thread contains the data relative to an interrupt thread.
    Currently we still provide a 1:1 relationship of events to threads
    with the exception that events only have an associated thread if there
    is at least one threaded interrupt handler attached to the event.  This
    means that on x86 we no longer have 4 bazillion interrupt threads with
    no handlers.  It also means that interrupt events with only INTR_FAST
    handlers no longer have an associated thread either.
  - Renamed struct intrhand to struct intr_handler to follow the struct
    intr_foo naming convention.  This did require renaming the powerpc
    MD struct intr_handler to struct ppc_intr_handler.
  - INTR_FAST no longer implies INTR_EXCL on all architectures except for
    powerpc.  This means that multiple INTR_FAST handlers can attach to the
    same interrupt and that INTR_FAST and non-INTR_FAST handlers can attach
    to the same interrupt.  Sharing INTR_FAST handlers may not always be
    desirable, but having sio(4) and uhci(4) fight over an IRQ isn't fun
    either.  Drivers can always still use INTR_EXCL to ask for an interrupt
    exclusively.  The way this sharing works is that when an interrupt
    comes in, all the INTR_FAST handlers are executed first, and if any
    threaded handlers exist, the interrupt thread is scheduled afterwards.
    This type of layout also makes it possible to investigate using interrupt
    filters ala OS X where the filter determines whether or not its companion
    threaded handler should run.
  - Aside from the INTR_FAST changes above, the impact on MD interrupt code
    is mostly just 's/ithread/intr_event/'.
  - A new MI ddb command 'show intrs' walks the list of interrupt events
    dumping their state.  It also has a '/v' verbose switch which dumps
    info about all of the handlers attached to each event.
  - We currently don't destroy an interrupt thread when the last threaded
    handler is removed because it would suck for things like ppbus(8)'s
    braindead behavior.  The code is present, though, it is just under
    #if 0 for now.
  - Move the code to actually execute the threaded handlers for an interrrupt
    event into a separate function so that ithread_loop() becomes more
    readable.  Previously this code was all in the middle of ithread_loop()
    and indented halfway across the screen.
  - Made struct intr_thread private to kern_intr.c and replaced td_ithd
    with a thread private flag TDP_ITHREAD.
  - In statclock, check curthread against idlethread directly rather than
    curthread's proc against idlethread's proc. (Not really related to intr
    changes)

  Tested on:      alpha, amd64, i386, sparc64
  Tested on:      arm, ia64 (older version of patch by cognet and marcel)

  Revision  Changes    Path
  1.88      +43 -29    src/sys/alpha/alpha/interrupt.c
  1.38      +5 -5      src/sys/alpha/isa/isa.c
  1.16      +58 -52    src/sys/amd64/amd64/intr_machdep.c
  1.6       +1 -1      src/sys/amd64/include/intr_machdep.h
  1.16      +2 -2      src/sys/amd64/isa/atpic.c
  1.11      +28 -22    src/sys/arm/arm/intr.c
  1.462     +2 -2      src/sys/dev/sio/sio.c
  1.6       +1 -1      src/sys/dev/uart/uart_kbd_sun.c
  1.24      +2 -2      src/sys/dev/uart/uart_tty.c
  1.15      +58 -52    src/sys/i386/i386/intr_machdep.c
  1.8       +1 -1      src/sys/i386/include/intr_machdep.h
  1.21      +2 -2      src/sys/i386/isa/atpic.c
  1.52      +32 -25    src/sys/ia64/ia64/interrupt.c
  1.180     +3 -2      src/sys/kern/kern_clock.c
  1.127     +437 -270  src/sys/kern/kern_intr.c
  1.206     +0 -1      src/sys/kern/subr_witness.c
  1.6       +3 -3      src/sys/powerpc/include/intr_machdep.h
  1.7       +35 -32    src/sys/powerpc/powerpc/intr_machdep.c
  1.14      +1 -1      src/sys/sparc64/include/intr_machdep.h
  1.24      +43 -36    src/sys/sparc64/sparc64/intr_machdep.c
  1.32      +36 -36    src/sys/sys/interrupt.h
  1.440     +1 -3      src/sys/sys/proc.h

  Catch up with interrupt-thread changes.

  Revision  Changes    Path
  1.32      +1 -1      src/sys/dev/zs/zs.c

  Catch up with new interrupt handling code.

  Revision  Changes    Path
  1.16      +3 -3      src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c

  Catch up with new interrupt handling code.

  Revision  Changes    Path
  1.162     +2 -2      src/sys/dev/cy/cy.c
  1.101     +2 -2      src/sys/dev/rc/rc.c

  Catch up with new interrupt handling code.

  Revision  Changes    Path
  1.50      +2 -2      src/sys/dev/cx/if_cx.c
  1.41      +1 -1      src/sys/dev/sab/sab.c
  1.238     +2 -2      src/sys/pc98/cbus/sio.c

  Add a swi_remove() function to teardown software interrupt handlers.  For
  now it just calls intr_event_remove_handler(), but at some point it might
  also be responsible for tearing down interrupt events created via swi_add.

  Revision  Changes    Path
  1.128     +17 -0     src/sys/kern/kern_intr.c
  1.33      +1 -0      src/sys/sys/interrupt.h

  - Use swi_remove() to teardown swi handlers rather than
    intr_event_remove_handler().
  - Remove tty: prefix from a couple of swi handler names.

  Revision  Changes    Path
  1.51      +1 -1      src/sys/dev/cx/if_cx.c
  1.102     +2 -2      src/sys/dev/rc/rc.c
  1.42      +1 -1      src/sys/dev/sab/sab.c
  1.25      +1 -1      src/sys/dev/uart/uart_tty.c
  1.33      +1 -1      src/sys/dev/zs/zs.c
  1.17      +2 -2      src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c

  Remove a stray return statement in the interrupt dispatch function
  that caused a premature exit after calling a fast interrupt handler
  and bypassing a much needed critical_exit() and the scheduling of
  the interrupt thread for non-fast handlers. In short: unbreak :-)

  Revision  Changes    Path
  1.53      +0 -1      src/sys/ia64/ia64/interrupt.c

  If we get a stray interrupt, return after logging it.  In the extremely
  rare case of a stray interrupt to an unregistered source (such as a stray
  interrupt from the 8259As when using APIC), this could result in a page
  fault when it tried to walk the list of interrupt handlers to execute
  INTR_FAST handlers.  This bug was introduced with the intr_event changes,
  so it's not present in 5.x or 6.x.

  Submitted by:   Mark Tinguely tinguely at casselton dot net

  Revision  Changes    Path
  1.17      +1 -0      src/sys/amd64/amd64/intr_machdep.c
  1.16      +1 -0      src/sys/i386/i386/intr_machdep.c

Approved by:	re (scottl)
2006-03-10 19:37:35 +00:00
sos
df6d640227 MFC
missed line in last commit
Approved by:    re@ (implicit)
2006-03-10 12:43:42 +00:00
sos
332e8a29dc MFC:
Only use the channel in the request given to ata_completed if its
still present.
Only look for ICRC and CORR errors on ATA devices not ATAPI.
Get rid of all the "long long"/"maxint" casting around in printf's.
On all our platforms intmax == int64_t so simply using %j to print
int64_t's is safe all over, and doesn't pullute the code.
Update atapi-fd to support direct devices such as disks.
ATAUSB will need to hook into the delayed boot identify to have
interrupts running, so externalize it.
Add USB modes.

Approved by: re@ (mux)
2006-03-10 12:30:08 +00:00
glebius
1e815db058 MFC 1.65:
Correctly switch IFCAP_VLAN_HWTAGGING on and off.

Approved by:	re (mux)
2006-03-10 07:34:21 +00:00
yar
528a25636a MFC:
Move the functionality controlled by "options TDFX_LINUX"
from 3dfx.ko to a separate module, 3dfx_linux.ko.
The option is retained in RELENG_6 for POLA reasons
while it has been turned into "device tdfx_linux" in HEAD.

Approved by:	re (scottl)
2006-03-09 21:51:00 +00:00
mjacob
1c024f228c MFC 1.4 to make sure the ioctl doesn't get smushed.
Approved by:	re@freebsd.org
2006-03-09 21:43:10 +00:00
glebius
8ddb67d972 MFC 1.127:
- Do not leak read lock in IP_FW_TABLE_GETSIZE case of ipfw_ctl().
  - Acquire read (not write) lock in case of IP_FW_TABLE_LIST.

Approved by:	re (hrs)
2006-03-09 13:42:44 +00:00
gnn
05eae11405 Merge in6.c:1.60 from HEAD to RELENG_6
Fix for an inappropriate bzero of the ICMPv6 stats.  The code was zero'ing the wrong structure member but setting the correct one.

Submitted by:   James dot Juran at baesystems dot com
Approved by: re (scottl)
2006-03-09 11:59:03 +00:00
thompsa
fba5f61aed MFC bridgestp.c r1.12, if_bridgevar.h r1.11
Add a timer to periodically check the interface state.

Approved by:	re (scottl)
2006-03-09 08:21:19 +00:00
tegge
206e5d3ace MFC: Don't set IN_CHANGE and IN_UPDATE on inodes for potentially suspended
file systems.  This could cause deadlocks when creating snapshots.

Approved by:	re (mux)
2006-03-09 00:21:23 +00:00
tegge
7d50ddd92e MFC: Eliminate a deadlock when creating snapshots. Blocking
vn_start_write() must be called without any vnode locks held.
     Remove calls to vn_start_write() and vn_finished_write() in
     vnode_pager_putpages() and add these calls before the vnode lock
     is obtained to most of the callers that don't already have them.

Approved by:	re (mux)
2006-03-09 00:18:45 +00:00
tegge
329a13b6d7 MFC: Hold extra reference to vm object while cleaning pages.
Ignore dirty pages owned by "dead" objects.

Approved by:	re (mux)
2006-03-09 00:07:35 +00:00
tegge
ca00351165 MFC: Don't try to show marker nodes.
Approved by:	re (mux)
2006-03-09 00:04:27 +00:00
tegge
871ed2943c MFC: Expand scope of marker to reduce the number of page queue scan restarts.
Approved by:	re (mux)
2006-03-09 00:02:51 +00:00
tegge
816296ec32 MFC: Check return value from nonblocking call to vn_start_write().
Approved by:	re (mux)
2006-03-09 00:01:29 +00:00
tegge
8fa2a5cdd2 MFC: Rounding addr upwards to next 4M or 2M boundary in pmap_growkernel()
could cause addr to become 0, resulting in an early return without
     populating the last PDE.

Approved by:	re (mux)
2006-03-08 23:59:41 +00:00
tegge
f3859919e3 MFC: For low memory situations, non-VMIO buffers didnt't release pages back
to the system when brelse() was called with B_RELBUF set on the buffer.
     This could be a problem when the system was low on memory, had many
     buffers on QUEUE_EMPTYKVA and started to traverse directories.  For
     each getnewbuf(), pages were allocated from the system, driving the
     free reserve downwards. For each brelse(), the system put the buffer
     on QUEUE_CLEAN, with B_INVAL set.

     This commit changes the semantics of B_RELBUF to also free pages from
     non-VMIO buffers.

Approved by:	re (mux)
2006-03-08 23:57:07 +00:00
tegge
d69ff42e3b MFC: Don't access fs->first_object after dropping reference to it.
The result could be a missed or extra giant unlock.

Approved by:	re (mux)
2006-03-08 23:53:39 +00:00
kris
733d0eda70 MFC:
----------------------------
revision 1.101
date: 2006/02/28 00:05:44;  author: kris;  state: Exp;  lines: +2 -4
Correct the vnode locking in fdescfs.

PR:             kern/93905
Submitted by:   Kostik Belousov <kostikbel@gmail.com>
Reviewed by:    jeff
----------------------------

Approved by:	re (mux)
2006-03-08 23:06:07 +00:00
cvs2svn
9cb23632cc This commit was manufactured by cvs2svn to create branch 'RELENG_6'. 2006-03-08 18:03:10 +00:00
pjd
c44fa9d800 MFC: sys/geom/label/g_label_ufs.c 1.10
We need to check if file system size is equal to provider's size, because
sysinstall(8) still bogusly puts the first partition at offset 0 instead of 16,
so glabel/ufs will find file system on a slice instead of partition.

Before sysinstall is fixed, we must keep this code, which means that we
wont't be able to detect UFS file systems created with 'newfs -s ...'.

PS. bsdlabel(8) creates partitions properly.

Approved by:	re (hrs)
2006-03-08 14:20:14 +00:00
jhb
4e42f99cdd MFC: Throw out all the logical APIC ID stuff and just wire up interrupts
to individual CPUs using physical addressing and fixed delivery mode.

Approved by:	re (scottl)
2006-03-07 18:33:21 +00:00
jhb
3d7b05e4b2 MFC: Close some races between procfs/ptrace and exit1() by changing
exit1() to block until any current PHOLD's are released.  This includes
Simplifying the cleanup code in kern_ptrace() and removing the now
unnecessary vmspace ref counting magic from proc_rwmem().  Also, the
locking for ptrace_single_step(), ptrace_set_pc(), and
ptrace_clear_single_step() have been fixed to be consistent across the
tree.

Approved by:	re (scottl)
2006-03-07 18:08:09 +00:00
jhb
4c79273d05 MFC: Remove some dead code.
Approved by:	re (scottl)
2006-03-07 15:51:19 +00:00
jhb
5adc475e72 MFC: Fix various minor bugs and nits in callout handling.
Approved by:	re (scottl)
2006-03-07 15:50:25 +00:00
jhb
6b57112b80 MFC: Add a missing check for the return value from copyin().
Approved by:	re (scottl)
2006-03-07 15:49:11 +00:00
mlaier
b439464437 MFC:
Make pflog a seperate module.  As a result pflog_packet() becomes a
  function pointer that is declared in pf_ioctl.c

  Requested by:   yar (as part of the module build reorg)

Approved by:	re (scottl)
2006-03-06 16:10:19 +00:00
mlaier
acec523745 Link the firmware module the build. Forgotten in original MFC.
Reminded by:	Joerg Pulz
Approved by:	re (scottl)
2006-03-06 16:05:53 +00:00
ps
9863378685 MFC:
Don't truncate f_mntfromname & f_mntonname to 16 characters when
translating statfs into ostatfs.  Also use strlcpy instead of bcopy
to make sure the copied strings are properly terminated.

Approved by:	re (scottl)
2006-03-06 10:56:43 +00:00
ps
25e5540c17 MFC: rev 1.153
Fix bug in malloc_uninit():
Releasing items from the mt_zone can not be done by a simple
uma_zfree() call since mt_zone is allocated with the UMA_ZONE_MALLOC
flag. Use uma_zfree_arg instead and supply the slab.

This bug caused panics in low memory situations on unloading kernel
modules containing MALLOC_DEFINE(..) statements.

Approved by:	re (scottl)
2006-03-06 08:42:07 +00:00