diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2008-11-21 17:41:33 -0800 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-26 09:47:44 -0500 |
commit | cb71d9bafb37adab50ddce53bb119a84b4966c06 (patch) | |
tree | a6fb54b339748309de9e20455910c402de942b5c /fs | |
parent | 24689c8590be6bc0486af665c5ceda6aeff4d53a (diff) |
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>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions