freebsd-skq/sys
rwatson b463bc6c33 Add a new network interface flag, IFF_NEEDSGIANT, which will allow
device drivers to declare that the ifp->if_start() method implemented
by the driver requires Giant in order to operate correctly.

Add a 'struct task' to 'struct ifnet' that can be used to execute a
deferred ifp->if_start() in the event that if_start needs to be called
in a Giant-free environment.  To do this, introduce if_start(), a
wrapper function for ifp->if_start().  If the interface can run MPSAFE,
it directly dispatches into the interface start routine.  If it can't
run MPSAFE, we're running with debug.mpsafenet != 0, and Giant isn't
currently held, the task is queued to execute in a swi holding Giant
via if_start_deferred().

Modify if_handoff() to use if_start() instead of direct dispatch.
Modify 802.11 to use if_start() instead of direct dispatch.

This is intended to provide increased compatibility for non-MPSAFE
network device drivers in the presence of Giant-free operation via
asynchronous dispatch.  However, this commit does not mark any network
interfaces as IFF_NEEDSGIANT.
2004-07-27 23:20:45 +00:00
..
alpha Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
amd64 Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
arm Correct typo in prior commit: s/cd/td/ 2004-07-27 19:44:08 +00:00
boot o Support the REL32LSB relocation. It's in the ELF file from which 2004-07-20 07:11:14 +00:00
cam Quirk for SEGRAND NP-900 USB MP3Player 2004-07-18 05:39:14 +00:00
coda Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
compat Use kernel_vmount() instead of vfs_nmount(). 2004-07-27 21:38:42 +00:00
conf Add "options ADAPTIVE_GIANT" which causes Giant to also be treated in 2004-07-27 16:34:48 +00:00
contrib Fix the following LOR on pf module unload: 2004-07-23 03:37:05 +00:00
crypto Use __FBSDID(). 2004-06-14 00:38:54 +00:00
ddb Oops... Add the CS_OWN flag to the trace and where commands so that 2004-07-21 05:55:51 +00:00
dev Don't force an immediate probe/attach for all devices when compiled with 2004-07-26 06:04:35 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
gdb Introduce the GDB debugger backend for the new KDB framework. The 2004-07-10 17:47:22 +00:00
geom Improve geom(8)'s 'list' command to show geoms and their providers and 2004-07-26 17:14:47 +00:00
gnu Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
i4b Fix a possible hang which apparently occurs during a warm boot (cold boot 2004-07-18 20:13:31 +00:00
i386 Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
ia64 Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
isa Ignore more strange return values of the test_aux_port() function, 2004-07-16 22:04:29 +00:00
isofs/cd9660 Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
kern Convert the vfsconf list to a TAILQ. 2004-07-27 22:32:01 +00:00
libkern Convert the vfsconf list to a TAILQ. 2004-07-27 22:32:01 +00:00
modules Add the ACPI Panasonic extras driver. 2004-07-21 14:47:54 +00:00
net Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Further function forward declaration white space tweaks. 2004-07-19 17:18:58 +00:00
netatm Fix a typo that could provoke a panic or access to random memory. 2004-07-19 12:54:00 +00:00
netgraph When making a peer of unknown type framework tries to load module 2004-07-27 20:30:56 +00:00
netinet Fix for a SACK bug where the very last segment retransmitted 2004-07-26 23:41:12 +00:00
netinet6 Don't consider TCP connections beyond LISTEN state 2004-07-27 16:35:09 +00:00
netipsec Add required includes for post-sorwakeup() change to fix FAST_IPSEC 2004-06-23 01:58:22 +00:00
netipx Constify 'spx_backoff'. 2004-07-12 19:35:29 +00:00
netkey Merge next step in socket buffer locking: 2004-06-21 00:20:43 +00:00
netnatm Constify send and receive space constants in natm. 2004-06-24 03:11:29 +00:00
netncp Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
netsmb Merge additional socket buffer locking from rwatson_netperf: 2004-06-17 22:48:11 +00:00
nfs Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfs4client Eliminate unused second argument to reassignbuf() and simplify it 2004-07-25 21:24:23 +00:00
nfsclient Eliminate unused second argument to reassignbuf() and simplify it 2004-07-25 21:24:23 +00:00
nfsserver If debug.mpsafenet is non-zero, run the NFS server callout without 2004-07-24 02:32:27 +00:00
opencrypto Push acquisition of Giant from fdrop_closed() into fo_close() so that 2004-07-22 18:35:43 +00:00
pc98 Merged from sys/dev/sio/sio.c revision 1.450. 2004-07-24 15:13:42 +00:00
pccard Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
pci Update for the KDB framework: 2004-07-10 21:47:53 +00:00
posix4
powerpc Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
rpc fix array index out of bounds in rpc->rc_srtt[], rpc->rc_sdrtt[] 2004-07-15 22:21:25 +00:00
security Allow an effective uid of root to bypass mac_bsdextended rules; the MAC 2004-07-23 01:53:28 +00:00
sparc64 Pass a thread argument into cpu_critical_{enter,exit}() rather than 2004-07-27 16:41:01 +00:00
sys Convert the vfsconf list to a TAILQ. 2004-07-27 22:32:01 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
vm - Use atomic ops for updating the vmspace's refcnt and exitingcnt. 2004-07-27 03:53:41 +00:00
Makefile Try harder not to compile anything in sys/boot for arm. 2004-05-16 00:19:12 +00:00