mirror_ubuntu-kernels/drivers/net/wireless
Emmanuel Grumbach e3d4bc8cc0 iwlwifi: mvm: fix aggregation drain flow
Move the counter for non-AMPDU frames to mvm. It is needed
for the drain flow which happens once the ieee80211_sta has
been freed, so keeping it in iwl_mvm_sta which is embed into
ieee80211_sta is not a good idea.

Also, since its purpose it to remove the STA in the fw only
after all the frames for this station have exited the shared
Tx queues, we need to decrement it in the reclaim flow. This
flow can happen after ieee80211_sta has been removed, which
means that we have no iwl_mvm_sta there. So we can't know
what is the vif type. Hence, we know audit these frames for
all the vif types.
In order to avoid spawning sta_drained_wk all the time, we
now check that we are in a flow in which draining might
happen - only when mvmsta is NULL. This is better than
previous code that would spawn sta_drained_wk all the time
in AP mode.

Cc: stable@vger.kernel.org [3.9]
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-05-16 22:39:07 +02:00
..
ath Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-05-10 10:29:24 -04:00
b43 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-05-10 10:29:24 -04:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-04-24 10:54:20 -04:00
brcm80211 drivers/net: rename random32() to prandom_u32() 2013-05-07 18:38:27 -07:00
hostap wireless: single_open() leaks 2013-05-05 00:13:20 -04:00
ipw2x00 ipw2x00: move to kstrto* functions 2013-04-10 14:10:34 -04:00
iwlegacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-05-10 10:29:24 -04:00
iwlwifi iwlwifi: mvm: fix aggregation drain flow 2013-05-16 22:39:07 +02:00
libertas drivers/net: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:27:33 -07:00
libertas_tf mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
mwifiex Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-05-10 10:29:24 -04:00
orinoco Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
p54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-04-24 10:54:20 -04:00
prism54 wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
rt2x00 rt2x00: Use more current logging styles, shrink object size 2013-04-22 15:20:26 -04:00
rtl818x mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
rtlwifi rtlwifi: rtl8192cu: Fix false loss of AP indication 2013-04-26 08:42:23 -04:00
ti Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-04-24 10:54:20 -04:00
zd1211rw mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
adm8211.c mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
adm8211.h
airo_cs.c drivers/net: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:27:33 -07:00
airo.c airo: Use remove_proc_subtree() 2013-05-01 17:29:42 -04:00
airo.h
at76c50x-usb.c mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
at76c50x-usb.h
atmel_cs.c drivers/net: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:27:33 -07:00
atmel_pci.c atmel: remove __dev* attributes 2012-12-06 15:04:56 -05:00
atmel.c wireless: single_open() leaks 2013-05-05 00:13:20 -04:00
atmel.h
Kconfig drivers/net/wireless: remove depends on CONFIG_EXPERIMENTAL 2013-01-22 12:01:35 -08:00
mac80211_hwsim.c mac80211_hwsim: handle IEEE80211_HW_SUPPORTS_RC_TABLE 2013-04-22 16:19:16 +02:00
mac80211_hwsim.h
Makefile wireless: fix Atheros drivers compilation 2012-12-17 15:48:43 -05:00
mwl8k.c mwl8k: remove nonstandard rate 72 Mbps 2013-04-22 15:06:44 -04:00
ray_cs.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: update email address 2013-03-08 15:58:54 -05:00
wl3501_cs.c drivers/net: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:27:33 -07:00
wl3501.h
zd1201.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
zd1201.h