linux/drivers/net/wireless/ath/ath9k
Sujith Manoharan 1e929d3e02 ath9k: Do not start BA when scanning
mac80211 currently has a race which can be hit
with this sequence:

* Start a scan operation.
* TX BA is initiated by ieee80211_start_tx_ba_session().
* Driver sets up internal state and calls
  ieee80211_start_tx_ba_cb_irqsafe().
* mac80211 adds a packet to sdata->skb_queue with
  type IEEE80211_SDATA_QUEUE_AGG_START.
* ieee80211_iface_work() doesn't process the
  packet because scan is in progress.
* ADDBA response timer expires and the sta/tid is
  torn down.
* Driver receives BA stop notification and calls
  ieee80211_stop_tx_ba_cb_irqsafe().
* This is also added to the queue by mac80211.
* Now, scan finishes.

At this point, the queued up packets might be processed
if some other operation schedules the sdata work. Since
the tids have been cleaned up already, warnings are hit.

If this doesn't happen, the packets are left in the queue
until the interface is torn down.

Since initiating a BA session when scan is in progress
leads to flaky connections, especially in MCC mode, we
can drop the TX BA request. This improves connectivity
with legacy clients in MCC mode.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-10-27 14:16:17 -04:00
..
ahb.c ath9k: Initialize channel context ops on ahb probe 2014-07-29 10:32:57 -04:00
ani.c ath9k_hw: do not lower ANI setting below default on AR913x 2014-04-30 11:39:54 -04:00
ani.h ath9k_hw: tweak noise immunity thresholds for older chipsets 2014-03-03 15:35:55 -05:00
antenna.c ath9k: add support for reporting per-chain signal strength 2013-12-18 15:23:19 -05:00
ar953x_initvals.h ath9k_hw: Add QCA953x 2.0 initvals 2014-06-25 15:40:37 -04:00
ar955x_1p0_initvals.h ath9k: Remove AR955x INI duplicates 2013-12-09 15:37:57 -05:00
ar5008_initvals.h
ar5008_phy.c ath9k: do not overwrite AR_PHY_RADAR_1 MSB 2014-10-27 14:16:14 -04:00
ar9001_initvals.h
ar9002_calib.c ath9k_hw: remove IS_CHAN_B() 2013-10-14 13:39:58 -04:00
ar9002_hw.c ath9k: Register supported HW hang checks 2014-01-03 15:36:57 -05:00
ar9002_initvals.h
ar9002_mac.c ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
ar9002_phy.c ath9k_hw: simplify spur channel handling 2013-12-18 15:23:27 -05:00
ar9002_phy.h
ar9003_2p2_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9003_buffalo_initvals.h ath9k: Use a separate TX gain table for WZR-HP-G450H 2013-12-09 15:37:58 -05:00
ar9003_calib.c ath9k: Calculate IQ-CAL median 2014-02-12 15:36:08 -05:00
ar9003_eeprom.c ath9k_hw: fix XPABIASLEVEL settings for AR9531 2014-06-25 15:40:38 -04:00
ar9003_eeprom.h ath9k: Update BaseExtension_1 eeprom structure 2013-12-18 15:23:44 -05:00
ar9003_hw.c ath9k_hw: Add QCA953x 2.0 initvals 2014-06-25 15:40:37 -04:00
ar9003_mac.c ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
ar9003_mac.h
ar9003_mci.c
ar9003_mci.h
ar9003_paprd.c
ar9003_phy.c ath9k: do not overwrite AR_PHY_RADAR_1 MSB 2014-10-27 14:16:14 -04:00
ar9003_phy.h ath9k: Fix regulatory compliance 2014-01-03 15:37:01 -05:00
ar9003_rtt.c
ar9003_rtt.h
ar9003_wow.c ath9k: Fix wow.c compilation 2013-12-02 14:24:53 -05:00
ar9330_1p1_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9330_1p2_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9340_initvals.h ath9k_hw: fix worse EVM for 11b rates 2014-04-30 12:13:16 -04:00
ar9462_2p0_initvals.h ath9k: Fix ETSI compliance for AR9462 2.0 2014-02-20 15:53:20 -05:00
ar9462_2p1_initvals.h ath9k: Remove duplicate initvals for AR9462 v2.1 2013-12-02 14:25:02 -05:00
ar9485_initvals.h ath9k: Identify duplicate AR9485 initvals 2013-12-09 15:37:59 -05:00
ar9565_1p0_initvals.h ath9k: Identify duplicate AR9565 v1.0 initvals 2013-12-09 15:38:00 -05:00
ar9565_1p1_initvals.h ath9k: Add initvals for AR9565 1.1 2013-12-02 14:25:01 -05:00
ar9580_1p0_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ath9k.h ath9k: Improve flush() in mcc mode 2014-10-27 14:16:17 -04:00
beacon.c ath9k: Fix sequence number assignment 2014-10-08 15:24:15 -04:00
btcoex.c ath9k_hw: clean up generic timer code 2013-12-18 15:23:22 -05:00
btcoex.h
calib.c ath9k: add noise floor parameter to ath9k_hw_getchan_noise 2013-10-18 14:03:53 -04:00
calib.h ath9k: add noise floor parameter to ath9k_hw_getchan_noise 2013-10-18 14:03:53 -04:00
channel.c ath9k: Improve flush() in mcc mode 2014-10-27 14:16:17 -04:00
common-beacon.c Revert "ath9k: Calculate sleep duration" 2014-09-11 14:17:20 -04:00
common-beacon.h ath9k: move ath9k_beacon_config_ap common 2014-03-17 13:13:08 -04:00
common-debug.c ath9k: move phy_err to ath9k_cmn_debug_phy_err 2014-05-13 15:56:42 -04:00
common-debug.h ath9k: move phy_err to ath9k_cmn_debug_phy_err 2014-05-13 15:56:42 -04:00
common-init.c ath9k: move ath9k_reload_chainmask_settings to common 2014-02-28 14:33:16 -05:00
common-init.h ath9k: move ath9k_reload_chainmask_settings to common 2014-02-28 14:33:16 -05:00
common.c ath9k: move ath9k_rx_skb_postprocess to common.c 2014-02-12 15:36:01 -05:00
common.h ath9k-common: create common-debug and move modal_eeprom to cmn 2014-05-13 15:56:36 -04:00
debug_sta.c ath9k: remove tid->paused flag 2014-04-30 11:42:35 -04:00
debug.c ath9k: add debugfs support for dynack 2014-09-16 16:18:40 -04:00
debug.h ath9k & ath9k_htc: move ath_rx_stats to cmn 2014-05-13 15:56:40 -04:00
dfs_debug.c ath9k: dfs_debug fix possible NULL dereference 2013-11-11 14:42:43 -05:00
dfs_debug.h ath9k: simplify DFS pulse interval debug printing 2014-05-29 13:08:10 -04:00
dfs.c ath9k: simplify DFS pulse interval debug printing 2014-05-29 13:08:10 -04:00
dfs.h ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dynack.c ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
dynack.h ath9k: add dynamic ACK timeout estimation 2014-09-16 16:18:30 -04:00
eeprom_4k.c ath9k_hw: simplify spur channel handling 2013-12-18 15:23:27 -05:00
eeprom_9287.c ath9k_hw: simplify spur channel handling 2013-12-18 15:23:27 -05:00
eeprom_def.c ath9k_hw: simplify spur channel handling 2013-12-18 15:23:27 -05:00
eeprom.c
eeprom.h
gpio.c ath9k_hw: clean up generic timer code 2013-12-18 15:23:22 -05:00
hif_usb.c ath9k_htc: Add device ID for Buffalo WLI-UV-AG300P 2014-02-12 15:36:04 -05:00
hif_usb.h
htc_drv_beacon.c ath9k_htc: move DEFAULT_SWBA_RESPONSE check to ath9k_htc_beacon_init 2014-03-17 13:13:09 -04:00
htc_drv_debug.c ath9k_htc: use ath9k_cmn_debug_phy_err 2014-05-13 15:56:43 -04:00
htc_drv_gpio.c ath9k_htc: reconfigure led_gpios after resume 2013-12-18 15:23:02 -05:00
htc_drv_init.c ath9k_htc: avoid kernel panic in ath9k_hw_reset 2014-10-07 15:07:15 -04:00
htc_drv_main.c mac80211: extend set_coverage_class signature 2014-09-05 13:54:07 +02:00
htc_drv_txrx.c ath9k_htc: fix random decryption failure 2014-09-15 15:09:26 -04:00
htc_hst.c ath9k_htc: catch fw panic pattern 2014-02-12 15:36:03 -05:00
htc_hst.h ath9k_htc: catch fw panic pattern 2014-02-12 15:36:03 -05:00
htc.h ath9k: fixup "ath9k_htc: fix build with disabled debug" 2014-05-20 15:36:15 -04:00
hw-ops.h ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
hw.c ath9k_hw: fix PLL clock initialization for newer SoC 2014-09-30 13:17:47 -04:00
hw.h ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
init.c ath9k: Use a subroutine to assign HW queues 2014-09-09 15:27:22 -04:00
Kconfig ath9k: add config for (en|dis)abling ACK timeout estimation 2014-09-16 16:18:37 -04:00
link.c ath9k: Move beacon config to channel context 2014-06-19 15:49:18 -04:00
mac.c ath9k_hw: Abort transmission for sleeping station 2014-05-19 16:42:15 -04:00
mac.h ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
main.c ath9k: Do not start BA when scanning 2014-10-27 14:16:17 -04:00
Makefile ath9k: add config for (en|dis)abling ACK timeout estimation 2014-09-16 16:18:37 -04:00
mci.c ath9k: Move caldata into channel context 2014-06-19 15:49:18 -04:00
mci.h
pci.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
phy.h
recv.c ath9k: Fix build error 2014-09-16 16:18:42 -04:00
reg.h ath9k_hw: fix PLL clock initialization for newer SoC 2014-09-30 13:17:47 -04:00
spectral.c ath9k: fix wrong string size for strncmp in write_file_spec_scan_ctl() 2014-08-25 15:39:23 -04:00
spectral.h ath: Move spectral debugfs structs to shared header 2014-08-04 09:07:37 +03:00
tx99.c ath9k: Unify reset API 2014-10-27 14:16:14 -04:00
wmi.c
wmi.h ath9k: mark wmi_event_swba as __packed 2013-09-26 15:13:48 -04:00
wow.c ath9k: Fix interface accounting 2014-09-09 15:27:21 -04:00
xmit.c ath9k: Fix sequence number assignment 2014-10-08 15:24:15 -04:00