• Luis R. Rodriguez's avatar
    ath9k: Handle -ENOMEM on RX gracefully · cb71d9ba
    Luis R. Rodriguez authored
    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: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    cb71d9ba
recv.c 15.9 KB