linux/drivers/net/wireless/ath
Michal Kazior af21319fcd ath10k: fix beacon deadlock
This should fix a very rare occurrence of the following deadlock:

  [<ffffffffa018265e>] ath10k_wmi_tx_beacons_nowait+0x1e/0x50 [ath10k_core]
  [<ffffffffa01829b6>] ath10k_wmi_op_ep_tx_credits+0x16/0x40 [ath10k_core]
  [<ffffffffa017d685>] ath10k_htc_send+0x285/0x3d0 [ath10k_core]
  [<ffffffffa0184b81>] ath10k_wmi_cmd_send_nowait+0x81/0x110 [ath10k_core]
  [<ffffffffa0184c61>] ath10k_wmi_tx_beacon_nowait.part.33+0x51/0x90 [ath10k_core]
  [<ffffffffa0184cd0>] ath10k_wmi_tx_beacons_iter+0x30/0x40 [ath10k_core]
  [<ffffffff81882246>] __iterate_active_interfaces+0xa6/0x100
  [<ffffffffa0184ca0>] ? ath10k_wmi_tx_beacon_nowait.part.33+0x90/0x90 [ath10k_core]
  [<ffffffff818822ae>] ieee80211_iterate_active_interfaces_atomic+0xe/0x10
  [<ffffffffa0182676>] ath10k_wmi_tx_beacons_nowait+0x36/0x50 [ath10k_core]
  [<ffffffffa01829b6>] ath10k_wmi_op_ep_tx_credits+0x16/0x40 [ath10k_core]
  [<ffffffffa017d140>] ath10k_htc_rx+0x280/0x410 [ath10k_core]
  [<ffffffffa01bcbf0>] ? ath10k_ce_completed_recv_next+0x60/0x80 [ath10k_pci]
  [<ffffffffa01bc6ab>] ath10k_pci_ce_recv_data+0x11b/0x1d0 [ath10k_pci]
  [<ffffffffa01bcf44>] ath10k_ce_per_engine_service+0x64/0xc0 [ath10k_pci]
  [<ffffffffa01bcfc2>] ath10k_ce_per_engine_service_any+0x22/0x50 [ath10k_pci]
  [<ffffffffa01bc4d0>] ath10k_pci_tasklet+0x30/0x90 [ath10k_pci]
  [<ffffffff81055a55>] tasklet_action+0xc5/0x100

To prevent this make sure to release ar->data_lock
while calling to ath10k_wmi_beacon_send_ref_nowait().

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-02-04 09:17:06 +02:00
..
ar5523
ath5k ath5k: drop owner assignment from platform_drivers 2015-01-06 20:40:27 +02:00
ath6kl Merge branch 'for-linville' of git://github.com/kvalo/ath 2014-11-17 15:28:39 -05:00
ath9k ath9k: fix typo 2014-12-24 19:14:44 +02:00
ath10k ath10k: fix beacon deadlock 2015-02-04 09:17:06 +02:00
carl9170 carl9170: Convert byte_rev_table uses to bitrev8 2014-10-30 15:26:52 -04:00
wcn36xx Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
wil6210 wil6210: use 'uint64_t' instead of 'cycles_t' to avoid warnings 2015-01-07 10:39:58 +02:00
ath.h Merge commit '4e6ce4dc7ce71d0886908d55129d5d6482a27ff9' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-11-19 15:38:48 -05:00
debug.c
dfs_pattern_detector.c ath: fix incorrect PPB on FCC radar type 5 2014-12-24 17:28:28 +02:00
dfs_pattern_detector.h
dfs_pri_detector.c
dfs_pri_detector.h
hw.c
Kconfig ath: Add support for tracing 2014-10-02 14:23:14 -04:00
key.c
main.c ath: Fix smatch warning 2014-10-07 14:48:37 -04:00
Makefile ath: Add support for tracing 2014-10-02 14:23:14 -04:00
reg.h
regd_common.h
regd.c ath: use CTL region from cfg80211 if unset in EEPROM 2014-10-23 14:02:06 -04:00
regd.h
spectral_common.h ath10k: add spectral scan feature 2014-08-04 09:07:54 +03:00
trace.c ath: Add support for tracing 2014-10-02 14:23:14 -04:00
trace.h ath: Add support for tracing 2014-10-02 14:23:14 -04:00