linux/drivers/net/wireless
Emmanuel Grumbach 80d8565557 iwlwifi: mvm: free AGG queue when we STA is removed
When we stop an AGG session, we need to look at the sequence
numbers in in the private area of the ieee80211_sta struct.
This allows us to know is the queue is empty. To get access
to this private area, we use fw_id_to_mac_id that maps
sta_id (index of the STA in fw table) to ieee80211_sta.

When the STA exists in fw, but not in mac80211, we set
an ERR ptr in fw_id_to_mac_id.

But if we first set an ERR ptr to fw_id_to_mac_id, and only
then flush the queues, then we won't be able to access the
sequence numbers in ieee80211_sta from the reclaim flow.
This means that we will never be able to release an AGG
queue when a station is deleted.

So first, flush the queue. That will let the reclaim flow
call iwl_mvm_check_ratid_empty which will disable the AGG
queue as needed, and only then, remove the mapping in
fw_id_to_mac_id.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-03-06 16:47:00 +01:00
..
ath Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
b43 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-02-26 11:44:11 -08:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-12-11 16:24:55 -05:00
brcm80211 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-02-25 14:50:31 -05:00
hostap net: wireless: hostap: hostap_ap.c: Return -ENOMEM instead of -1 for if kmalloc() fails. 2013-02-18 15:30:40 -05:00
ipw2x00 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
iwlegacy Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-02-15 13:59:53 -05:00
iwlwifi iwlwifi: mvm: free AGG queue when we STA is removed 2013-03-06 16:47:00 +01:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-02-18 13:47:13 -05:00
libertas_tf
mwifiex Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-02-25 14:50:31 -05:00
orinoco Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-02-19 14:56:34 -05:00
p54 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
prism54 wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
rt2x00 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
rtl818x drivers/net/wireless/rtl818x: remove depends on CONFIG_EXPERIMENTAL 2013-01-22 12:01:35 -08:00
rtlwifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-02-19 14:56:34 -05:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-02-20 18:58:50 -08:00
zd1211rw Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
Kconfig drivers/net/wireless: remove depends on CONFIG_EXPERIMENTAL 2013-01-22 12:01:35 -08:00
Makefile wireless: fix Atheros drivers compilation 2012-12-17 15:48:43 -05:00
adm8211.c wireless: remove __dev* attributes 2012-12-06 15:04:55 -05:00
adm8211.h
airo.c wireless: remove __dev* attributes 2012-12-06 15:04:55 -05:00
airo.h
airo_cs.c wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
at76c50x-usb.c wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
at76c50x-usb.h
atmel.c treewide: fix typo of "suport" in various comments and Kconfig 2012-11-19 14:16:09 +01:00
atmel.h
atmel_cs.c wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
atmel_pci.c atmel: remove __dev* attributes 2012-12-06 15:04:56 -05:00
mac80211_hwsim.c mac80211_hwsim: ask mac80211 to reserve space for chanctx.drv_priv 2013-02-15 09:41:45 +01:00
mac80211_hwsim.h
mwl8k.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-02-14 14:23:33 -05:00
ray_cs.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
ray_cs.h
rayctl.h
rndis_wlan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-02-18 13:47:13 -05:00
wl3501.h
wl3501_cs.c wl3501_cs: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:40 -04:00
zd1201.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
zd1201.h