linux/drivers/net/wireless/ath/ath9k
Mohammed Shafi Shajakhan 9cf04dcc9c ath9k: Fix possible double free of PAPRD skb's
This patch reverts the following commit
ath9k: remove bfs_paprd_timestamp from struct ath_buf_state

Under high interference/noisy environment conditions where PAPRD frames
fails heavily introduces a possibility of double freeing skb's and causes
kernel panic after some time.This patch reverts back to the original approach
of using paprd_timestamp before freeing the PAPRD frame skb's

[  194.193705] Pid: 0, comm: swapper Tainted: G      D WC
2.6.35-22-generic #33-Ubuntu
[  194.193712] Call Trace:
[  194.193722]  [<c05c6468>] ? printk+0x2d/0x35
[  194.193732]  [<c05c63c3>] panic+0x5a/0xd2
[  194.193741]  [<c05ca3ed>] oops_end+0xcd/0xd0
[  194.193750]  [<c0105f74>] die+0x54/0x80
[  194.193758]  [<c05c9a16>] do_trap+0x96/0xc0
[  194.193837]  [<c0103fb0>] ? do_invalid_op+0x0/0xa0
[  194.193846]  [<c010403b>] do_invalid_op+0x8b/0xa0
[  194.193856]  [<c020bd4c>] ? kfree+0xec/0xf0
[  194.193866]  [<c012ce18>] ? default_spin_lock_flags+0x8/0x10
[  194.193877]  [<c01de47a>] ? free_one_page+0x12a/0x2d0
[  194.193888]  [<c01e04dc>] ? __free_pages+0x1c/0x40
[  194.193897]  [<c05c97a7>] error_code+0x73/0x78
[  194.193906]  [<c020bd4c>] ? kfree+0xec/0xf0
[  194.193915]  [<c04ecdd0>] ? skb_release_data+0x70/0xa0
[  194.193924]  [<c04ecdd0>] skb_release_data+0x70/0xa0
[  194.193933]  [<c04ec997>] __kfree_skb+0x17/0x90
[  194.193941]  [<c04eca31>] consume_skb+0x21/0x40
[  194.193964]  [<f85e0b70>] ieee80211_tx_status+0x760/0x860 [mac80211]
[  194.193979]  [<f85caddf>] ath_tx_complete_buf+0x1bf/0x2c0 [ath9k]
[  194.193988]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
[  194.193997]  [<c04ec40e>] ? skb_queue_tail+0x3e/0x50
[  194.194010]  [<f85cc803>] ath_tx_complete_aggr+0x823/0x940 [ath9k]
[  194.194021]  [<c0108a28>] ? sched_clock+0x8/0x10
[  194.194030]  [<c016bf14>] ? sched_clock_local+0xa4/0x180
[  194.194040]  [<c0139f57>] ? enqueue_sleeper+0x1e7/0x2b0
[  194.194051]  [<c013a194>] ? enqueue_entity+0x174/0x200
[  194.194064]  [<f85ce83d>] ath_tx_edma_tasklet+0x2bd/0x3b0 [ath9k]
[  194.194074]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
[  194.194088]  [<f85c7b9f>] ath9k_tasklet+0x9f/0x190 [ath9k]
[  194.194097]  [<c01505d7>] tasklet_action+0xa7/0xb0
[  194.194107]  [<c015127c>] __do_softirq+0x9c/0x1b0
[  194.194117]  [<c01a7f64>] ? irq_to_desc+0x14/0x20
[  194.194126]  [<c0124fc4>] ? ack_apic_level+0x64/0x1f0
[  194.194136]  [<c01513d5>] do_softirq+0x45/0x50
[  194.194145]  [<c0151545>] irq_exit+0x65/0x70
[  194.194153]  [<c05cf665>] do_IRQ+0x55/0xc0
[  194.194162]  [<c016a6c7>] ? hrtimer_start+0x27/0x30
[  194.194171]  [<c0103630>] common_interrupt+0x30/0x38
[  194.194181]  [<c012c21a>] ? native_safe_halt+0xa/0x10
[  194.194268]  [<c010a2f9>] default_idle+0x49/0xb0
[  194.194277]  [<c0101fcc>] cpu_idle+0x8c/0xd0
[  194.194286]  [<c05b2431>] rest_init+0x71/0x80
[  194.194295]  [<c081981a>] start_kernel+0x36e/0x374
[  194.194305]  [<c08199dd>] ? pass_all_bootoptions+0x0/0xa
[  194.194314]  [<c08190d7>] i386_start_kernel+0xd7/0xdf
[  194.194364] panic occurred, switching back to text console

Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-02-04 16:11:39 -05:00
..
ahb.c ath: Convert ath_print(.., ATH_DBG_FATAL to ath_err 2010-12-07 16:34:47 -05:00
ani.c ath9k_hw: Disable MRC CCK for AR9485 2010-12-07 16:54:23 -05:00
ani.h
ar5008_initvals.h
ar5008_phy.c ath9k_hw: remove baseband rfsilent support 2010-12-20 14:49:48 -05:00
ar9001_initvals.h
ar9002_calib.c ath9k_hw: do PA offset calibration only on longcal interval 2011-01-17 16:09:03 -05:00
ar9002_hw.c ath9k_hw: Fix system hang when resuming from S3/S4 2011-01-28 15:27:20 -05:00
ar9002_initvals.h
ar9002_mac.c ath9k_hw: remove ah->txpower_indexoffset 2010-12-13 15:23:32 -05:00
ar9002_phy.c ath9k: fix spur mitigation no-spur case for AR9002 2011-01-04 14:35:12 -05:00
ar9002_phy.h
ar9003_2p2_initvals.h ath9k_hw: ASPM interoperability fix for AR9380/AR9382 2011-01-17 16:09:02 -05:00
ar9003_calib.c ath9k_hw: Tx IQ cal changes for AR9003 2010-12-16 15:22:30 -05:00
ar9003_eeprom.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-01-05 16:06:25 -05:00
ar9003_eeprom.h ath9k_hw: Add a helper to get paprd scale factor 2010-12-16 15:22:30 -05:00
ar9003_hw.c ath9k_hw: ASPM interoperability fix for AR9380/AR9382 2011-01-17 16:09:02 -05:00
ar9003_mac.c ath9k_hw: fix dma descriptor rx error bit parsing 2011-01-04 14:43:01 -05:00
ar9003_mac.h
ar9003_paprd.c ath9k_hw: fix PA predistortion HT40 mask 2010-12-20 14:52:18 -05:00
ar9003_phy.c ath9k_hw: remove baseband rfsilent support 2010-12-20 14:49:48 -05:00
ar9003_phy.h ath9k_hw: fix PA predistortion training power selection 2010-12-13 15:23:33 -05:00
ar9485_initvals.h ath9k_hw: Add initvals.h for AR9485 2010-12-07 16:34:50 -05:00
ath9k.h ath9k: Fix possible double free of PAPRD skb's 2011-02-04 16:11:39 -05:00
beacon.c ath9k: Few clean ups in beacon config parameters 2011-01-04 14:35:15 -05:00
btcoex.c ath9k: Remove code which enables btcoex based on subsys id 2010-11-29 15:24:36 -05:00
btcoex.h ath9k: Remove code which enables btcoex based on subsys id 2010-11-29 15:24:36 -05:00
calib.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
calib.h
common.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
common.h ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
debug.c ath9k: Move debugfs under ieee80211/[phyname]/ath9k/ 2010-12-02 15:16:41 -05:00
debug.h ath9k: Move debugfs under ieee80211/[phyname]/ath9k/ 2010-12-02 15:16:41 -05:00
eeprom_4k.c ath9k_hw: remove antenna configuration eeprom ops and variables 2010-12-13 15:23:31 -05:00
eeprom_9287.c ath9k_hw: remove antenna configuration eeprom ops and variables 2010-12-13 15:23:31 -05:00
eeprom_def.c ath9k_hw: Fix thermal issue with UB94 2011-01-10 15:40:51 -05:00
eeprom.c ath9k_hw: merge the ar9287 version of ath9k_hw_get_gain_boundaries_pdadcs 2010-12-13 15:23:31 -05:00
eeprom.h ath9k_htc: Fix warning on device removal 2010-12-22 15:43:25 -05:00
gpio.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
hif_usb.c ath9k_htc: Handle pending URBs properly 2011-01-04 14:42:59 -05:00
hif_usb.h ath9k_htc: Handle pending URBs properly 2011-01-04 14:42:59 -05:00
htc_drv_beacon.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
htc_drv_gpio.c ath9k_htc: Move LED/RFKILL code to htc_drv_gpio.c 2011-01-04 14:43:00 -05:00
htc_drv_init.c ath9k_htc: fix race conditions when stop device 2011-01-27 16:41:10 -05:00
htc_drv_main.c ath9k_htc: fix race conditions when stop device 2011-01-27 16:41:10 -05:00
htc_drv_txrx.c ath9k_htc: Fix endian issue in tx header 2011-01-17 16:09:03 -05:00
htc_hst.c ath9k_htc: Identify devices using driver_info 2010-11-24 16:19:41 -05:00
htc_hst.h ath9k_htc: Remove unused structures 2010-12-02 15:16:48 -05:00
htc.h ath9k_htc: Fix endian issue in tx header 2011-01-17 16:09:03 -05:00
hw-ops.h ath9k_hw: remove baseband rfsilent support 2010-12-20 14:49:48 -05:00
hw.c ath9k_hw: disabled PAPRD for AR9003 2011-01-21 15:05:57 -05:00
hw.h ath9k_hw: disabled PAPRD for AR9003 2011-01-21 15:05:57 -05:00
init.c ath9k: Fix power save usage count imbalance on deinit 2011-01-28 15:27:20 -05:00
Kconfig
mac.c ath9k_hw: fix dma descriptor rx error bit parsing 2011-01-04 14:43:01 -05:00
mac.h ath9k_hw: remove ath9k_hw_stoppcurecv 2010-11-24 16:19:41 -05:00
main.c ath9k: Fix possible double free of PAPRD skb's 2011-02-04 16:11:39 -05:00
Makefile
pci.c ath9k: Reset keycache on resume 2010-12-22 15:44:22 -05:00
phy.h ath9k_hw: Find chansel of AR_PHY_65NM_CH0_SYNTH7 for AR9485 2010-12-07 16:34:55 -05:00
rc.c ath9k : few rate control clean ups 2011-01-04 14:46:13 -05:00
rc.h ath9k : few rate control clean ups 2011-01-04 14:46:13 -05:00
recv.c ath9k: Fix warnings on card removal 2010-12-22 15:43:25 -05:00
reg.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-12-08 13:47:38 -08:00
virtual.c ath9k: do not limit the chainmask to 1 for legacy mode 2010-12-20 14:52:18 -05:00
wmi.c ath9k_htc: Handle FATAL events 2011-01-04 14:43:00 -05:00
wmi.h ath9k_htc: Handle FATAL events 2011-01-04 14:43:00 -05:00
xmit.c ath9k: Fix possible double free of PAPRD skb's 2011-02-04 16:11:39 -05:00