linux/drivers/net/wireless/ath/ath9k
Miaoqing Pan 40bea976c7 ath9k: fix NULL pointer dereference
relay_open() may return NULL, check the return value to avoid the crash.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
IP: [<ffffffffa01a95c5>] ath_cmn_process_fft+0xd5/0x700 [ath9k_common]
PGD 41cf28067 PUD 41be92067 PMD 0
Oops: 0000 [#1] SMP
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.6+ #35
Hardware name: Hewlett-Packard h8-1080t/2A86, BIOS 6.15    07/04/2011
task: ffffffff81e0c4c0 task.stack: ffffffff81e00000
RIP: 0010:[<ffffffffa01a95c5>] [<ffffffffa01a95c5>] ath_cmn_process_fft+0xd5/0x700 [ath9k_common]
RSP: 0018:ffff88041f203ca0 EFLAGS: 00010293
RAX: 0000000000000000 RBX: 000000000000059f RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffffffff81f0ca98
RBP: ffff88041f203dc8 R08: ffffffffffffffff R09: 00000000000000ff
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffffffff81f0ca98 R14: 0000000000000000 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88041f200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000040 CR3: 000000041b6ec000 CR4: 00000000000006f0
Stack:
0000000000000363 00000000000003f3 00000000000003f3 00000000000001f9
000000000000049a 0000000001252c04 ffff88041f203e44 ffff880417b4bfd0
0000000000000008 ffff88041785b9c0 0000000000000002 ffff88041613dc60

Call Trace:
<IRQ>
[<ffffffffa01b6441>] ath9k_tasklet+0x1b1/0x220 [ath9k]
[<ffffffff8105d8dd>] tasklet_action+0x4d/0xf0
[<ffffffff8105dde2>] __do_softirq+0x92/0x2a0

Reported-by: Devin Tuchsen <devin.tuchsen@gmail.com>
Tested-by: Devin Tuchsen <devin.tuchsen@gmail.com>
Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-11-23 15:59:38 +02:00
..
ahb.c ath9k: simplify the code-paths when not using the built-in EEPROM 2016-07-19 20:57:14 +03:00
ani.c ath9k: clean up ANI per-channel pointer checking 2016-01-26 16:47:38 +02:00
ani.h
antenna.c
ar953x_initvals.h ath9k: Update QCA953x initvals 2016-03-11 13:59:56 +02:00
ar955x_1p0_initvals.h ath9k: Update AR955x initvals 2016-03-11 13:59:58 +02:00
ar956x_initvals.h ath9k: Update QCA956x initvals 2016-03-11 13:59:59 +02:00
ar5008_initvals.h
ar5008_phy.c ath9k: remove repetitions of mask array size 2016-09-09 15:12:18 +03:00
ar9001_initvals.h
ar9002_calib.c
ar9002_hw.c
ar9002_initvals.h
ar9002_mac.c
ar9002_phy.c ath9k_hw: fix spectral scan on AR9285 and newer 2016-07-19 20:58:07 +03:00
ar9002_phy.h ath9k_hw: fix spectral scan on AR9285 and newer 2016-07-19 20:58:07 +03:00
ar9003_2p2_initvals.h ath9k: Update AR9003 2.2 initvals 2016-03-11 13:59:56 +02:00
ar9003_aic.c ath9k: reduce stack usage in ar9003_aic_cal_post_process 2016-03-03 19:27:17 +02:00
ar9003_aic.h ath9k: reduce stack usage in ar9003_aic_cal_post_process 2016-03-03 19:27:17 +02:00
ar9003_buffalo_initvals.h
ar9003_calib.c ath9k_hw: implement temperature compensation support for AR9003+ 2016-07-19 20:59:17 +03:00
ar9003_eeprom.c ath9k: consider return code on 2016-08-19 13:07:06 +03:00
ar9003_eeprom.h ath9k: reuse ar9003_hw_tx_power_regwrite for tx99 setup 2016-05-09 20:46:31 +03:00
ar9003_hw.c ath9k_hw: add low power tx gain table for AR953x 2016-01-26 16:47:38 +02:00
ar9003_mac.c
ar9003_mac.h
ar9003_mci.c ath9k: make GPIO API to support both of WMAC and SOC 2016-03-11 14:00:02 +02:00
ar9003_mci.h
ar9003_paprd.c
ar9003_phy.c ath9k: Fix symbol overlap window for half/quarter channels 2016-05-09 21:12:01 +03:00
ar9003_phy.h ath9k_hw: fix duplicate (and partially wrong) definition of AR_CH0_THERM 2016-07-19 20:59:04 +03:00
ar9003_rtt.c
ar9003_rtt.h
ar9003_wow.c
ar9330_1p1_initvals.h ath9k: Update AR933x initvals 2016-03-11 13:59:57 +02:00
ar9330_1p2_initvals.h ath9k: Update AR933x initvals 2016-03-11 13:59:57 +02:00
ar9340_initvals.h ath9k: Update AR9340 initvals 2016-03-11 13:59:57 +02:00
ar9462_2p0_initvals.h ath9k: Update AR9462 initvals 2016-03-11 13:59:57 +02:00
ar9462_2p1_initvals.h ath9k: Update AR9462 initvals 2016-03-11 13:59:57 +02:00
ar9485_initvals.h ath9k: Update AR9485 initvals 2016-03-11 13:59:58 +02:00
ar9565_1p0_initvals.h ath9k: Update AR9565 initvals 2016-03-11 13:59:58 +02:00
ar9565_1p1_initvals.h
ar9580_1p0_initvals.h ath9k: Update AR9580 initvals 2016-03-11 13:59:59 +02:00
ath9k.h ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
beacon.c ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
btcoex.c ath9k: fix BTCoex configuration for SOC chips 2016-03-11 14:00:04 +02:00
btcoex.h ath9k: fix BTCoex configuration for SOC chips 2016-03-11 14:00:04 +02:00
calib.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
calib.h
channel.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
common-beacon.c
common-beacon.h
common-debug.c
common-debug.h
common-init.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
common-init.h
common-spectral.c ath9k: fix NULL pointer dereference 2016-11-23 15:59:38 +02:00
common-spectral.h
common.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
common.h ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
debug.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
debug.h ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
debug_sta.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
dfs.c
dfs.h
dfs_debug.c
dfs_debug.h
dynack.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
dynack.h
eeprom.c ath9k: simplify the code-paths when not using the built-in EEPROM 2016-07-19 20:57:14 +03:00
eeprom.h
eeprom_4k.c
eeprom_9287.c
eeprom_def.c
gpio.c ath9k: mark ath_fill_led_pin() static 2016-09-02 19:06:05 +03:00
hif_usb.c ath9k_htc: Delete unnecessary variable initialisation 2016-04-07 19:37:40 +03:00
hif_usb.h
htc.h
htc_drv_beacon.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
htc_drv_debug.c
htc_drv_gpio.c ath9k: free GPIO resource for SOC GPIOs 2016-03-11 14:00:02 +02:00
htc_drv_init.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
htc_drv_main.c Merge ath-next from ath.git 2016-04-26 14:13:59 +03:00
htc_drv_txrx.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
htc_hst.c ath9k_htc: fix minor mistakes in dev_err messages 2016-11-15 16:57:47 +02:00
htc_hst.h
hw-ops.h
hw.c ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success 2016-11-23 15:58:21 +02:00
hw.h ath9k_hw: implement temperature compensation support for AR9003+ 2016-07-19 20:59:17 +03:00
init.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
Kconfig ath9k: disable RNG by default 2016-09-28 12:59:49 +03:00
link.c
mac.c
mac.h ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
main.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
Makefile
mci.c
mci.h
pci.c ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards. 2016-11-15 16:52:16 +02:00
phy.h
recv.c tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
reg.h ath9k: fix GPIO mask for AR9462 and AR9565 2016-06-14 16:21:31 +03:00
reg_aic.h
reg_mci.h
reg_wow.h
rng.c ath9k: change entropy formula for easier understanding 2016-10-13 17:22:44 +03:00
tx99.c ath9k: Proper TX99 interrupt ref count 2016-05-28 11:24:25 +03:00
wmi.c
wmi.h
wow.c
xmit.c ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00