alistair23-linux/net
Herton Ronaldo Krzesinski 1a28c78b46 mac80211: deauth before flushing STA information
Even after commit "mac80211: deauth when interface is marked down"
(e327b847 on Linus tree), userspace still isn't notified when interface
goes down. There isn't a problem with this commit, but because of other
code changes it doesn't work on kernels >= 2.6.28 (works if same/similar
change applied on 2.6.27 for example).

The issue is as follows: after commit "mac80211: restructure disassoc/deauth
flows" in 2.6.28, the call to ieee80211_sta_deauthenticate added by
commit e327b847 will not work: because we do sta_info_flush(local, sdata)
inside ieee80211_stop (iface.c), all stations in interface are cleared, so
when calling ieee80211_sta_deauthenticate->ieee80211_set_disassoc (mlme.c),
inside ieee80211_set_disassoc we have this in the beginning:

         sta = sta_info_get(local, ifsta->bssid);
         if (!sta) {

The !sta check triggers, thus the function returns early and
ieee80211_sta_send_apinfo(sdata, ifsta) later isn't called, so
wpa_supplicant/userspace isn't notified with SIOCGIWAP.

This commit moves deauthentication to before flushing STA info
(sta_info_flush), thus the above can't happen and userspace is really
notified when interface goes down.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16 18:09:39 -04:00
..
9p 9p: fix sparse warning: cast adds address space 2009-02-26 23:13:32 -08:00
802 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-03-05 02:06:47 -08:00
8021q net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
appletalk net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
atm lec: convert to net_device_ops 2009-01-21 14:02:00 -08:00
ax25 net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
bluetooth Bluetooth: Remove some pointless conditionals before kfree_skb() 2009-02-27 06:14:49 +01:00
bridge netlink: change nlmsg_notify() return value logic 2009-02-24 23:18:28 -08:00
can can: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:35 -08:00
core Network Drop Monitor: Adding Build changes to enable drop monitor 2009-03-13 12:09:29 -07:00
dcb
dccp dccp: Do not let initial option overhead shrink the MPS 2009-03-02 03:07:23 -08:00
decnet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
dsa net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
econet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
ethernet
ipv4 tcp: make sure xmit goal size never becomes zero 2009-03-15 20:09:55 -07:00
ipv6 net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
ipx net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
irda net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
iucv iucv: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:37 -08:00
key af_key: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:32 -08:00
lapb
llc net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
mac80211 mac80211: deauth before flushing STA information 2009-03-16 18:09:39 -04:00
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-02-25 00:02:05 -08:00
netlabel
netlink Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-03-05 02:06:47 -08:00
netrom netrom: convert to net_device_ops 2009-01-21 14:02:02 -08:00
packet Network Drop Monitor: Adding kfree_skb_clean for non-drops and modifying end-of-line points for skbs 2009-03-13 12:09:28 -07:00
phonet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
rds rds: fix iband RDMA dependencies 2009-03-03 21:39:40 -08:00
rfkill
rose rose: convert to network_device_ops 2009-01-21 14:02:04 -08:00
rxrpc RxRPC: Fix a potential NULL dereference 2009-02-06 21:50:52 -08:00
sched pkt_sched: Change misleading code in class delete. 2009-03-15 20:00:19 -07:00
sctp sctp: add Adaptation Layer Indication parameter only when it's set 2009-03-13 11:37:58 -07:00
sunrpc net/sunrpc/xprtsock.c: some common code found 2009-02-06 23:48:33 -08:00
tipc
unix unix: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:34 -08:00
wanrouter wanrouter: fix sparse warnings: context imbalance 2009-02-26 23:13:36 -08:00
wimax Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-02-14 23:12:00 -08:00
wireless cfg80211: fix max tx power for world regdom on 5 GHz to 20dBm 2009-03-16 18:09:29 -04:00
x25 x25: '< 0' and '>= 0' test on unsigned 2009-03-13 16:04:12 -07:00
xfrm Revert "xfrm: For 32/64 compatability wrt. xfrm_usersa_info" 2009-01-20 09:49:51 -08:00
compat.c net: socket infrastructure for SO_TIMESTAMPING 2009-02-15 22:43:35 -08:00
Kconfig Network Drop Monitor: Adding Build changes to enable drop monitor 2009-03-13 12:09:29 -07:00
Makefile RDS: Kconfig and Makefile 2009-02-26 23:43:35 -08:00
nonet.c
socket.c net: socket infrastructure for SO_TIMESTAMPING 2009-02-15 22:43:35 -08:00
sysctl_net.c
TUNABLE