linux_dsm_epyc7002/drivers/net/wireless
Amitkumar Karwar a7488c792f mwifiex: fix spinlock bad magic bug
[ 6630.450908] BUG: spinlock bad magic on CPU#1,
               ksdioirqd/mmc1/355
[ 6630.450914] Unable to handle kernel NULL pointer dereference
               at virtual address 0000004f
[ 6630.450919] pgd = ecbd8000
[ 6630.450926] [0000004f] *pgd=00000000
[ 6630.450936]  lock: 0xeea4ab08, .magic: 00000000,
               .owner: <none>/-1, .owner_cpu: 0
[ 6630.450939] Backtrace:
[ 6630.450956] [<c010d354>] (unwind_backtrace+0x0/0x118) from
               [<c060c238>] (dump_stack+0x28/0x30)
[ 6630.450960] Internal error: Oops: 5 [#1] SMP ARM
[ 6630.450964] Modules linked in: uvcvideo videobuf2_vmalloc
[ 6630.450980] [<c060c238>] (dump_stack+0x28/0x30) from
               [<c0315ab4>] (spin_dump+0x80/0x94)
[ 6630.450988] [<c0315ab4>] (spin_dump+0x80/0x94) from
               [<c0315af4>] (spin_bug+0x2c/0x30)
[ 6630.450996] [<c0315af4>] (spin_bug+0x2c/0x30) from
               [<c0315b80>] (do_raw_spin_lock+0x28/0x15c)
[ 6630.451004] [<c0315b80>] (do_raw_spin_lock+0x28/0x15c) from
               [<c0610c24>] (_raw_spin_lock_irqsave+0x20/0x28)
[ 6630.451016] [<c0610c24>] (_raw_spin_lock_irqsave+0x20/0x28)
               from [<bf07a7f4>] (mwifiex_exec_next_cmd
                                  +0x6c/0x45c [mwifiex])
[ 6630.451030] [<bf07a7f4>] (mwifiex_exec_next_cmd+0x6c/0x45c
               [mwifiex]) from [<bf07834c>]
               (mwifiex_main_process+0x2c8/0x464 [mwifiex])
[ 6630.451047] [<bf07834c>] (mwifiex_main_process+0x2c8/0x464
               [mwifiex]) from [<bf0a093c>]
               (mwifiex_sdio_interrupt+0xc8/0x1cc [mwifiex_sdio]
[ 6630.451064] [<bf0a093c>] (mwifiex_sdio_interrupt+0xc8/0x1cc
               [mwifiex_sdio]) from [<c04bbde0>]
               (sdio_irq_thread+0x178/0x31c)
[ 6630.451079] [<c04bbde0>] (sdio_irq_thread+0x178/0x31c) from
               [<c0145514>] (kthread+0xc8/0xd8)
[ 6630.451095] [<c0145514>] (kthread+0xc8/0xd8) from
               [<c0106118>] (ret_from_fork+0x14/0x20)

This bug has introduced/exposed due to recent patch in which we
cancel pending commands before suspend (using hs_enabling flag).
The NULL pointer is dereferenced when both
mwifiex_cancel_all_pending_cmd() and mwifiex_exec_next_cmd()
try to access cmd pending queue simultaneously.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-03-31 13:47:41 -04:00
..
ath carl9170: Remove casts of pointer to same type 2014-03-27 14:20:05 -04:00
b43 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
b43legacy net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
brcm80211 brcmfmac: use mfp if required from user-space 2014-03-27 14:20:06 -04:00
cw1200 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
hostap Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-03-04 13:05:12 -05:00
ipw2x00 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
iwlegacy iwl4965: disable 8K A-MSDU by default 2014-03-04 13:28:36 -05:00
iwlwifi Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next 2014-03-19 15:14:07 -04:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-03-04 13:05:12 -05:00
libertas_tf
mwifiex mwifiex: fix spinlock bad magic bug 2014-03-31 13:47:41 -04:00
orinoco orinoco: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
p54 p54usb: fix leaks at failure path in p54u_probe() 2014-03-14 14:49:13 -04:00
prism54 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
rsi rsi: Add pr_fmt,__printf, fix format & arg mismatch 2014-03-19 15:15:47 -04:00
rt2x00 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
rtl818x rtl8187: fix compile warning 2014-03-31 13:47:41 -04:00
rtlwifi rtlwifi: rtl8188ee: enable MSI interrupts mode 2014-03-31 13:47:41 -04:00
ti Drivers:net:wireless:ti:wl1251: Fixed Sparse invalid assignment warning 2014-03-04 13:28:36 -05:00
zd1211rw
adm8211.c
adm8211.h
airo_cs.c
airo.c airo: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:11:13 -05:00
airo.h
at76c50x-usb.c
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c atmel: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:11:13 -05:00
atmel.h
Kconfig rsi: Add RS9113 wireless driver 2014-03-17 13:51:52 -04:00
mac80211_hwsim.c mac80211_hwsim: allow creation of single-channel radios with chanctx 2014-02-11 13:10:02 +01:00
mac80211_hwsim.h mac80211_hwsim: allow creation of single-channel radios with chanctx 2014-02-11 13:10:02 +01:00
Makefile rsi: Add RS9113 wireless driver 2014-03-17 13:51:52 -04:00
mwl8k.c mwl8k: mwl8k_update_survey can be static 2014-03-06 14:29:58 -05:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
wl3501_cs.c wl3501_cs: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
wl3501.h
zd1201.c zd1201: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
zd1201.h