1
linux/drivers/net/wireless/ath9k
Luis R. Rodriguez cb71d9bafb ath9k: Handle -ENOMEM on RX gracefully
We would get an oops on RX on -ENOMEM by passing
NULL to the hardware on ath_rx_buf_link(). The oops
would look something like this:

ath_rx_tasklet+0x515/0x53b
ath9k_tasklet+0x48
tasklet_action
__do_softirq
irq_exit
do_IRQ

RIP: ath_rx_buf_link+0x3a

We correct this by handling the requeue directly on
the ath_rx_tasklet() and trying to allocate an skb
*prior* to sending up the last hardware processed
skb. If we run out of memory this gauranteees we have
skbs to work with while it simply drops new received
frames.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-11-26 09:47:44 -05:00
..
ani.c ath9k: Refactor hw.c 2008-11-10 15:16:05 -05:00
ath9k.h ath9k: Fix bug in deciphering channel flags 2008-11-26 09:47:33 -05:00
beacon.c ath9k: Remove ath9k_rate_table 2008-11-26 09:47:30 -05:00
calib.c ath9k: incorrect noise floor threshold values. 2008-11-25 16:41:29 -05:00
core.c ath9k: Remove ath9k_rate_table 2008-11-26 09:47:30 -05:00
core.h ath9k: Move TX completion routine to xmit.c 2008-11-26 09:47:32 -05:00
eeprom.c ath9k: Configure AR_PHY_SWITCH_COM with apropriate antenna control 2008-11-25 16:41:40 -05:00
hw.c ath9k: Fix bug in deciphering channel flags 2008-11-26 09:47:33 -05:00
hw.h ath9k: INI update for atheros chipets. 2008-11-25 16:41:28 -05:00
initvals.h ath9k: INI update for atheros chipets. 2008-11-25 16:41:28 -05:00
Kconfig ath9k: uses/needs led_classdev_[un]register 2008-09-05 16:17:49 -04:00
mac.c ath9k: Update TX trigger level on a FIFO underrun. 2008-11-26 09:47:34 -05:00
main.c ath9k: Move TX completion routine to xmit.c 2008-11-26 09:47:32 -05:00
Makefile ath9k: Refactor hw.c 2008-11-10 15:16:05 -05:00
phy.c ath9k: Refactor hw.c 2008-11-10 15:16:05 -05:00
phy.h ath9k: Add IEEE80211_HW_RX_INCLUDES_FCS to hw flags 2008-08-29 16:24:05 -04:00
rc.c ath9k: Dont update rate control for every AMPDU 2008-11-26 09:47:40 -05:00
rc.h ath9k: Dont update rate control for every AMPDU 2008-11-26 09:47:40 -05:00
recv.c ath9k: Handle -ENOMEM on RX gracefully 2008-11-26 09:47:44 -05:00
reg.h ath9k: Add LED support 2008-08-29 16:24:09 -04:00
regd_common.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
xmit.c ath9k: Dont update rate control for every AMPDU 2008-11-26 09:47:40 -05:00