2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-25 07:06:40 +08:00
linux-next/drivers/net/wireless
Matti Gottlieb 6ed1316445 iwlwifi: mvm: Fix wrongfully flushing frames in the roc/off channel queue
Sending multiple action frames off channel, one after the other can create
a race that will result in a timeout:

1. Start sending action frame off channel.
2. Once the frame is sent or the time event is over, the flow will
eventually call ieee80211_start_next_roc to start the next roc frame &
iwl_mvm_roc_finished schedules to schedule a work to flush the queue.
3. Start sending new roc frame and write it to the queue before the
flush work has started.
4. The work is called and it flushes the new packet that was placed on the
on the queue so the packet is lost.

This causes the frame to be removed & not sent, that causes a timeout in
userspace.

Flush the work queue that flushes the roc/off channel queue before starting
to send a new frame off channel, in order to avoid a race between the new
frame that is transmitted off channel & the flushing of the queue.

Signed-off-by: Matti Gottlieb <matti.gottlieb@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-04-02 09:26:47 +03:00
..
ath wireless: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:38 -08:00
b43 treewide: Remove unnecessary SSB_DEVTABLE_END macro 2015-02-11 14:38:29 -08:00
b43legacy treewide: Remove unnecessary SSB_DEVTABLE_END macro 2015-02-11 14:38:29 -08:00
brcm80211 treewide: Remove unnecessary BCMA_CORETABLE_END macro 2015-02-11 14:38:28 -08:00
cw1200 cw1200: Less function calls in cw1200_load_firmware_cw1200() after error detection 2015-02-06 08:48:04 +02:00
hostap hostap: Delete an unnecessary check before the function call "kfree" 2015-02-06 08:51:35 +02:00
ipw2x00 ipw2200: select CFG80211_WEXT 2014-12-24 15:15:25 +02:00
iwlegacy iwl3945: Use setup_timer 2015-01-07 10:45:08 +02:00
iwlwifi iwlwifi: mvm: Fix wrongfully flushing frames in the roc/off channel queue 2015-04-02 09:26:47 +03:00
libertas cfg80211: remove enum station_info_flags 2015-01-08 15:28:10 +01:00
libertas_tf
mwifiex mwifiex: disable UAPSD mode when AP starts 2015-02-03 15:28:56 +02:00
orinoco orinoco: Delete an unnecessary check before the function call "kfree" 2015-02-06 08:50:24 +02:00
p54 p54pci: add handling of signal case 2015-01-23 21:37:04 +02:00
prism54
rsi rsi: fix memory leak in rsi_load_ta_instructions() 2014-12-24 17:26:08 +02:00
rt2x00 Merge commit 'c1e140bf79d817d4a7aa9932eb98b0359c87af33' from mac80211-next 2015-01-22 14:49:44 +02:00
rtl818x
rtlwifi rtlwifi: Remove logging statement that is no longer needed 2015-02-10 16:09:11 +02:00
ti wlcore: unlock on error in wl1271_op_suspend() 2015-01-23 19:37:42 +02:00
zd1211rw zd1211rw: fix misspelling of current function in string 2014-12-15 13:46:19 -05:00
adm8211.c adm8211: fix error return code 2015-01-15 14:44:42 +02:00
adm8211.h
airo_cs.c
airo.c
airo.h
at76c50x-usb.c
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c atmel: Remove open-coded and wrong strcasecmp 2015-01-23 21:38:54 +02:00
atmel.h
Kconfig
mac80211_hwsim.c Merge commit 'c1e140bf79d817d4a7aa9932eb98b0359c87af33' from mac80211-next 2015-01-22 14:49:44 +02:00
mac80211_hwsim.h mac80211-hwsim: Add HWSIM_CMD_GET_RADIO command 2014-11-19 18:59:32 +01:00
Makefile
mwl8k.c cfg80211: remove "channel" from survey names 2015-01-08 15:27:52 +01:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c cfg80211: remove enum station_info_flags 2015-01-08 15:28:10 +01:00
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h