freebsd-dev/sys/net80211
rwatson c664b598be 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
..
ieee80211_crypto.c add statistics for all failures and/or abnormal events; still need 2003-10-17 23:15:30 +00:00
ieee80211_crypto.h revise copyright notices per discussion with Atsushi Onoe <onoe@sm.sony.co.jp> 2003-06-27 05:13:52 +00:00
ieee80211_input.c Link ALTQ to the build and break with ABI for struct ifnet. Please recompile 2004-06-13 17:29:10 +00:00
ieee80211_ioctl.c o add support for controlling the power of transmitted frames 2004-03-30 22:57:57 +00:00
ieee80211_ioctl.h o add support for controlling the power of transmitted frames 2004-03-30 22:57:57 +00:00
ieee80211_node.c make malloc tag for ieee80211_node more recognizable 2004-04-05 04:15:55 +00:00
ieee80211_node.h eliminate nested include by making MALLOC_DECLARE conditional on the 2004-04-05 22:10:26 +00:00
ieee80211_output.c Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
ieee80211_proto.c Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
ieee80211_proto.h MFp4 changes to fix locking issues and correct reference 2003-08-19 22:17:04 +00:00
ieee80211_radiotap.h Resolve the issue of whether frames have FCS or not. Frame data does not 2004-04-05 22:13:21 +00:00
ieee80211_var.h eliminate nested include by making MALLOC_DECLARE conditional on the 2004-04-05 22:10:26 +00:00
ieee80211.c Add some missing <sys/module.h> includes which are masked by the 2004-05-30 17:57:46 +00:00
ieee80211.h add definitions for WME, WPA (and WPA2), and miscellaneous other stuff 2004-04-05 17:47:40 +00:00