freebsd-nq/sys/net80211
Bill Paul c788ca3e3c Recently, it was reported to me that you could provoke a double fault
panic with the NDISulator if you did "ifconfig ndis0 10.0.0.1/24,"
whereas "ifconfig ndis0 10.0.0.1/24 up" worked fine. The double fault
was caused by the ifconfig thread running out of kernel stack space.
(This was partly due to the NDIsulator using a couple of big buffers on
the stack, but even after fixing that the double fault persisted.)

It turns out that ndis_init() is called in both cases, but in the first
case the code path passes through ieee80211_ioctl(), and it turns out
ieee80211_ioctl() consumes a whopping 2400 bytes of stack space.
Apparently, gcc -O2 causes the ieee80211_ioctl_get80211() routine to
be inlined into ieee80211_ioctl(), and for some reason which I do not
fully understand, this causes ieee80211_ioctl() to consume an extra 2K
of stack space.

To prevent this overly agressive optimization, ieee80211_ioctl_get80211()
is now declared with __attribute__ ((noinline)). With this change,
ieee80211_ioctl() now only reserves about 200 bytes of stack instead of 2400.
2005-03-03 17:35:05 +00:00
..
_ieee80211.h bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_acl.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto_ccmp.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto_none.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto_tkip.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto_wep.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_crypto.h remove netbsd rcsid lines; they are way out of date and we appear to be 2004-12-31 22:44:26 +00:00
ieee80211_freebsd.c be consistent in naming inactivity timers; 2005-01-22 20:29:23 +00:00
ieee80211_freebsd.h bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_input.c mark timestamp for pending fragments 2005-02-23 04:52:30 +00:00
ieee80211_ioctl.c Recently, it was reported to me that you could provoke a double fault 2005-03-03 17:35:05 +00:00
ieee80211_ioctl.h bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211_node.c propagate state kept in the bss node when re-creating the node 2005-02-10 16:59:04 +00:00
ieee80211_node.h statically allocate the station/neighbor node table; the deferred 2005-01-24 19:32:10 +00:00
ieee80211_output.c rev 1.19 fixed wpa supplicant but broke wpa authenticator; when operating 2005-02-10 17:00:48 +00:00
ieee80211_proto.c noop change so RUN->RUN transition isn't considered invalid 2005-01-24 20:39:29 +00:00
ieee80211_proto.h add macros to convert between txop's and usecs 2005-01-24 20:38:26 +00:00
ieee80211_radiotap.h o replace out-of-line copy of FCS w/ a flag that indicates the 2005-01-22 20:12:05 +00:00
ieee80211_var.h o clarify that beacon interval settings are in TU's, not ms 2005-01-24 19:39:07 +00:00
ieee80211_xauth.c bump copyright for 2005 2004-12-31 22:42:38 +00:00
ieee80211.c supply a default ic_reset method for drivers; the ioctl code expect this 2005-01-27 17:39:17 +00:00
ieee80211.h remove netbsd rcsid lines; they are way out of date and we appear to be 2004-12-31 22:44:26 +00:00