linux/drivers/net/wireless/ath/ath9k
Sujith Manoharan bff2ec2b91 ath9k: Fix BTCOEX shutdown
Flush MCI profiles only if MCI is being actually used.
This fixes a panic on driver unload when non-MCI devices
are being used and btcoex_enable is set.

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffffa06296d2>] ath_mci_flush_profile+0x12/0x100 [ath9k]
Call Trace:
[<ffffffffa061befe>] ath9k_stop_btcoex+0x5e/0x80 [ath9k]
[<ffffffffa061ed57>] ath9k_stop+0xb7/0x230 [ath9k]
[<ffffffffa0533f30>] ieee80211_stop_device+0x50/0x180 [mac80211]
[<ffffffffa051f0cf>] ieee80211_do_stop+0x2af/0x6a0 [mac80211]
[<ffffffffa051f4da>] ieee80211_stop+0x1a/0x20 [mac80211]
[<ffffffff81365d96>] __dev_close_many+0x86/0xe0
[<ffffffff81365ee0>] dev_close_many+0xa0/0x110
[<ffffffff81366038>] rollback_registered_many+0xe8/0x260
[<ffffffff813661cb>] unregister_netdevice_many+0x1b/0x80
[<ffffffffa051e950>] ieee80211_remove_interfaces+0xd0/0x110 [mac80211]
[<ffffffffa050c133>] ieee80211_unregister_hw+0x53/0x120 [mac80211]
[<ffffffffa061d5a4>] ath9k_deinit_device+0x44/0x70 [ath9k]
[<ffffffffa062c1d4>] ath_pci_remove+0x54/0xa0 [ath9k]
[<ffffffff81267c46>] pci_device_remove+0x46/0x110
[<ffffffff8131021c>] __device_release_driver+0x7c/0xe0
[<ffffffff81310960>] driver_detach+0xd0/0xe0
[<ffffffff81310078>] bus_remove_driver+0x88/0xe0
[<ffffffff81311122>] driver_unregister+0x62/0xa0
[<ffffffff81268004>] pci_unregister_driver+0x44/0xc0
[<ffffffffa062c8b5>] ath_pci_exit+0x15/0x20 [ath9k]
[<ffffffffa063205d>] ath9k_exit+0x15/0x31 [ath9k]
[<ffffffff810b92cc>] sys_delete_module+0x18c/0x270
[<ffffffff814373dd>] ? retint_swapgs+0x13/0x1b
[<ffffffff8124828e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff81437de9>] system_call_fastpath+0x16/0x1b

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-03-12 14:19:33 -04:00
..
ahb.c drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
ani.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ani.h ath9k: Store noise immunity values across scanning 2011-09-20 14:43:49 -04:00
ar5008_initvals.h ath9k_hw: fix the last register write for ar5416 addac 2011-09-13 15:42:31 -04:00
ar5008_phy.c ath9k_hw: prevent writes to const data on AR9160 2012-02-21 14:45:25 -05:00
ar9001_initvals.h ath9k_hw: remove duplicate initvals 2012-02-27 14:05:41 -05:00
ar9002_calib.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ar9002_hw.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-02-29 14:53:21 -05:00
ar9002_initvals.h ath9k_hw: remove duplicate initvals 2012-02-27 14:05:41 -05:00
ar9002_mac.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ar9002_phy.c ath9k_hw: add a missing delay for an analog register 2011-07-11 15:02:15 -04:00
ar9002_phy.h
ar9003_2p2_initvals.h ath9k_hw: Updated AR9003 tx gain table for 5GHz 2011-10-14 14:48:21 -04:00
ar9003_calib.c ath9k_hw: Setup MCI calibration using a helper 2012-02-27 14:06:36 -05:00
ar9003_eeprom.c ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
ar9003_eeprom.h ath9k_hw: Read and configure quick drop for AR9003 2011-11-11 12:32:48 -05:00
ar9003_hw.c ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
ar9003_mac.c ath9k: get rid of double queueing of rx frames on EDMA 2012-03-07 13:51:38 -05:00
ar9003_mac.h ath9k: Fix descriptor length for AR9462 2012-02-27 14:05:44 -05:00
ar9003_mci.c ath9k_hw: MCI whitespace/debug cleanup 2012-02-27 14:06:40 -05:00
ar9003_mci.h ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
ar9003_paprd.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ar9003_phy.c ath9k: Initialize NF values properly 2012-02-27 14:05:44 -05:00
ar9003_phy.h ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
ar9003_rtt.c ath9k_hw: fix sparse warnings on ar9003_rtt.c 2012-01-04 14:30:40 -05:00
ar9003_rtt.h ath9k_hw: Add radio retention support for AR9480 2011-10-14 14:48:22 -04:00
ar9330_1p1_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9330_1p2_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9340_initvals.h
ar9462_2p0_initvals.h ath9k: Remove unused initvals 2012-02-27 14:05:43 -05:00
ar9485_initvals.h ath9k_hw: Update AR9485 initvals to fix system hang issue 2011-11-02 15:23:12 -04:00
ar9580_1p0_initvals.h ath9k_hw: add AR9580 support 2011-08-26 10:47:58 -04:00
ath9k.h ath9k: get rid of double queueing of rx frames on EDMA 2012-03-07 13:51:38 -05:00
beacon.c ath9k: fix drv_tx_last_beacon on AR9003 by processing beacon tx status 2012-03-05 15:20:48 -05:00
btcoex.c ath9k: Remove ATH_BTCOEX_CFG_NONE checks 2012-02-27 14:06:38 -05:00
btcoex.h ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
calib.c ath9k: Fix regression in channelwidth switch at the same channel 2012-01-10 15:46:40 -05:00
calib.h ath9k_hw: fix a comment 2012-01-10 15:46:39 -05:00
common.c ath9k_hw: clean up tx power handling 2011-10-11 16:41:26 -04:00
common.h ath9k: Move ath9k_init_crypto to common 2011-08-24 13:59:45 -04:00
debug.c ath9k: remove rssi/antenna information from recv debug stats 2012-03-07 13:51:38 -05:00
debug.h ath9k: remove rssi/antenna information from recv debug stats 2012-03-07 13:51:38 -05:00
dfs.c ath9k: fix roadkill due to Joe's patch on ath_dbg() changes 2011-12-21 15:06:11 -05:00
dfs.h ath9k: add DFS radar pulse processing 2011-12-15 14:46:37 -05:00
dfs_debug.c ath9k: add DFS radar pulse processing 2011-12-15 14:46:37 -05:00
dfs_debug.h ath9k: classify DFS debug header further 2011-12-21 15:06:09 -05:00
eeprom.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom.h ath9k_hw: Read and configure quick drop for AR9003 2011-11-11 12:32:48 -05:00
eeprom_4k.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom_9287.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom_def.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-01-03 15:16:34 -05:00
gpio.c ath9k: Fix BTCOEX shutdown 2012-03-12 14:19:33 -04:00
hif_usb.c ath9k: cleanup a min_t() cast 2012-02-06 14:55:42 -05:00
hif_usb.h ath9k_htc: Load firmware asynchronously 2012-01-30 15:48:42 -05:00
htc.h ath9k_htc: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:38 -05:00
htc_drv_beacon.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
htc_drv_debug.c wireless: ath9k: use %pM to print MAC 2011-07-20 15:04:39 -04:00
htc_drv_gpio.c ath9k: Remove ATH_BTCOEX_CFG_NONE checks 2012-02-27 14:06:38 -05:00
htc_drv_init.c ath9k_htc: Init BTCOEX inside htc_drv_gpio.c 2012-02-27 14:06:38 -05:00
htc_drv_main.c ath9k_htc: Start/stop btcoex using a helper 2012-02-27 14:06:37 -05:00
htc_drv_txrx.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
htc_hst.c
htc_hst.h
hw-ops.h ath9k_hw: add DFS testing check 2011-12-15 14:46:37 -05:00
hw.c ath9k_hw: use cold instead of warm reset on AR9280 2012-03-07 13:51:37 -05:00
hw.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-02-29 14:53:21 -05:00
init.c ath9k: make MAC sample statistics optional 2012-03-07 13:51:38 -05:00
Kconfig ath9k: make MAC sample statistics optional 2012-03-07 13:51:38 -05:00
mac.c ath9k_hw: enable interrupts for beacon tx completion events 2012-03-05 15:20:48 -05:00
mac.h ath9k_hw: fix a regression in key miss handling 2011-10-11 16:41:29 -04:00
main.c ath9k: do not call ath9k_hw_txprocdesc on AR9003 outside of the tx tasklet 2012-03-05 15:20:47 -05:00
Makefile ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
mci.c ath9k: Cleanup mci.c 2012-02-27 14:06:40 -05:00
mci.h ath9k_hw: Cleanup MCI bits from hw.h 2012-02-27 14:06:36 -05:00
pci.c ath9k_hw: make bluetooth coexistence support optional at compile time 2011-12-19 14:46:55 -05:00
phy.h
rc.c ath9k: completely zero intialize valid_phy_rate_idx 2012-03-05 15:23:14 -05:00
rc.h ath9k: completely zero intialize valid_phy_rate_idx 2012-03-05 15:23:14 -05:00
recv.c ath9k: fix signal strength reporting issues 2012-03-07 13:51:39 -05:00
reg.h ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
wmi.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
wmi.h
xmit.c ath9k: fix drv_tx_last_beacon on AR9003 by processing beacon tx status 2012-03-05 15:20:48 -05:00