linux_dsm_epyc7002/drivers/net/wireless
Stanislaw Gruszka 21f8aaee0c ath9k: protect tid->sched check
We check tid->sched without a lock taken on ath_tx_aggr_sleep(). That
is race condition which can result of doing list_del(&tid->list) twice
(second time with poisoned list node) and cause crash like shown below:

[424271.637220] BUG: unable to handle kernel paging request at 00100104
[424271.637328] IP: [<f90fc072>] ath_tx_aggr_sleep+0x62/0xe0 [ath9k]
...
[424271.639953] Call Trace:
[424271.639998]  [<f90f6900>] ? ath9k_get_survey+0x110/0x110 [ath9k]
[424271.640083]  [<f90f6942>] ath9k_sta_notify+0x42/0x50 [ath9k]
[424271.640177]  [<f809cfef>] sta_ps_start+0x8f/0x1c0 [mac80211]
[424271.640258]  [<c10f730e>] ? free_compound_page+0x2e/0x40
[424271.640346]  [<f809e915>] ieee80211_rx_handlers+0x9d5/0x2340 [mac80211]
[424271.640437]  [<c112f048>] ? kmem_cache_free+0x1d8/0x1f0
[424271.640510]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
[424271.640578]  [<c10fc23c>] ? put_page+0x2c/0x40
[424271.640640]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
[424271.640706]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
[424271.640787]  [<f809dde3>] ? ieee80211_rx_handlers_result+0x73/0x1d0 [mac80211]
[424271.640897]  [<f80a07a0>] ieee80211_prepare_and_rx_handle+0x520/0xad0 [mac80211]
[424271.641009]  [<f809e22d>] ? ieee80211_rx_handlers+0x2ed/0x2340 [mac80211]
[424271.641104]  [<c13846ce>] ? ip_output+0x7e/0xd0
[424271.641182]  [<f80a1057>] ieee80211_rx+0x307/0x7c0 [mac80211]
[424271.641266]  [<f90fa6ee>] ath_rx_tasklet+0x88e/0xf70 [ath9k]
[424271.641358]  [<f80a0f2c>] ? ieee80211_rx+0x1dc/0x7c0 [mac80211]
[424271.641445]  [<f90f82db>] ath9k_tasklet+0xcb/0x130 [ath9k]

Bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=70551

Reported-and-tested-by: Max Sydorenko <maxim.stargazer@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-02-20 15:53:20 -05:00
..
ath ath9k: protect tid->sched check 2014-02-20 15:53:20 -05:00
b43 b43: fix the wrong assignment of status.freq in b43_rx() 2014-01-23 14:02:45 -05:00
b43legacy b43legacy: Fix unload oops if firmware is not available 2014-01-13 14:50:03 -05:00
brcm80211 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
cw1200 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
hostap hostap: Do not free priv until timer handler has actually stopped using it 2014-02-20 15:49:07 -05:00
ipw2x00 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-10 10:59:40 -05:00
iwlegacy wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
iwlwifi iwlwifi: disable TX AMPDU by default for iwldvm 2014-02-13 15:24:35 +02:00
libertas libertas: fix scan result loss if SSID IE len 0 2014-02-20 15:49:07 -05:00
libertas_tf
mwifiex mwifiex: fix cmd and Tx data timeout issue for PCIe cards 2014-02-20 15:53:20 -05:00
orinoco wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
p54 p54: clamp properly instead of just truncating 2014-01-13 14:50:06 -05:00
prism54 wireless: slight optimization of addr compare 2013-12-26 13:31:35 -05:00
rt2x00 rt2500: disable PS by default 2014-02-04 15:30:07 -05:00
rtl818x rtl8187: fix regression on MIPS without coherent DMA 2014-02-13 14:58:12 -05:00
rtlwifi rtlwifi: Fix incorrect return from rtl_ps_enable_nic() 2014-02-13 14:58:12 -05:00
ti Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
zd1211rw zd1211rw: slight optimization of addr compare 2013-12-26 13:31:33 -05:00
adm8211.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
adm8211.h
airo_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
airo.c
airo.h
at76c50x-usb.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-01-13 14:40:59 -05:00
at76c50x-usb.h
atmel_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel_pci.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel.h
Kconfig
mac80211_hwsim.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
mac80211_hwsim.h mac80211_hwsim: restore regulatory testing functionality 2014-01-10 20:12:59 +01:00
Makefile
mwl8k.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-01-13 14:40:59 -05:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
wl3501_cs.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-10 10:59:40 -05:00
wl3501.h
zd1201.c
zd1201.h