linux_dsm_epyc7002/drivers/net/wireless
Kalle Valo 1427228d58 ath10k: fix napi crash during rmmod when probe firmware fails
This fixes the below crash when ath10k probe firmware fails, NAPI polling tries
to access a rx ring resource which was never allocated. An easy way to
reproduce this is easy to remove all the firmware files, load ath10k modules
and ath10k will crash when calling 'rmmod ath10k_pci'. The fix is to call
napi_enable() from ath10k_pci_hif_start() so that it matches with
napi_disable() being called from ath10k_pci_hif_stop().

Big thanks to Mohammed Shafi Shajakhan who debugged this and provided first
version of the fix. In this patch I just fix the actual problem in pci.c
instead of having a workaround in core.c.

BUG: unable to handle kernel NULL pointer dereference at (null)
IP:  __ath10k_htt_rx_ring_fill_n+0x19/0x230 [ath10k_core]
__ath10k_htt_rx_ring_fill_n+0x19/0x230 [ath10k_core]

Call Trace:

[<ffffffffa113ec62>] ath10k_htt_rx_msdu_buff_replenish+0x42/0x90
[ath10k_core]
[<ffffffffa113f393>] ath10k_htt_txrx_compl_task+0x433/0x17d0
[ath10k_core]
[<ffffffff8114406d>] ? __wake_up_common+0x4d/0x80
[<ffffffff811349ec>] ? cpu_load_update+0xdc/0x150
[<ffffffffa119301d>] ? ath10k_pci_read32+0xd/0x10 [ath10k_pci]
[<ffffffffa1195b17>] ath10k_pci_napi_poll+0x47/0x110 [ath10k_pci]
[<ffffffff817863af>] net_rx_action+0x20f/0x370

Reported-by: Ben Greear <greearb@candelatech.com>
Fixes: 3c97f5de1f ("ath10k: implement NAPI support")
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2017-02-14 19:40:16 +02:00
..
admtek adm80211: return an error if adm8211_alloc_rings() fails 2016-12-30 13:29:21 +02:00
ath ath10k: fix napi crash during rmmod when probe firmware fails 2017-02-14 19:40:16 +02:00
atmel Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
broadcom brcmfmac: merge two remaining brcmf_err macros 2017-02-08 17:23:39 +02:00
cisco net: use core MTU range checking in wireless drivers 2016-10-20 14:51:08 -04:00
intel Some more updates: 2017-02-10 14:31:51 -05:00
intersil wireless-drivers-next patches for 4.11 2017-01-02 15:23:34 -05:00
marvell Some more updates: 2017-02-10 14:31:51 -05:00
mediatek Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
ralink rt2x00: remove queue_entry from skbdesc 2017-02-08 17:30:20 +02:00
realtek wireless-drivers-next patches for 4.11 2017-02-10 13:47:52 -05:00
rsi mac80211: Pass new RSSI level in CQM RSSI notification 2017-02-08 10:43:04 +01:00
st mac80211: Pass new RSSI level in CQM RSSI notification 2017-02-08 10:43:04 +01:00
ti Some more updates: 2017-02-10 14:31:51 -05:00
zydas net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
Kconfig wireless: deprecate WDS and disable by default 2016-10-27 09:08:43 +02:00
mac80211_hwsim.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-22 13:27:16 -05:00
mac80211_hwsim.h drivers/wireless: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
Makefile ath: unify Kconfig with other vendors 2015-11-18 14:28:31 +02:00
ray_cs.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
ray_cs.h
rayctl.h
rndis_wlan.c cfg80211: Pass new RSSI level in CQM RSSI notification 2017-02-08 10:43:40 +01:00
wl3501_cs.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
wl3501.h