Search Linux Wireless

Re: [ath5k-devel] ath5k_tasklet_rx BUG_ON(bf->skb == NULL)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 09, 2009 at 02:10:50PM +0000, Hugh Dickins wrote:
> Good, that should be a lot quicker.

Well I got a lockup doing that, I'll try again later but anyway I see
the bug already, read on if interested.  I should have a patch shortly.

ath5k_tasklet_rx creates a new skb for every packet that is handed to
the upper layers, and the buffer is moved to the end of the rxbuf list.
But ath5k_rxbuf_setup fails skb_alloc so the buffer is left in the rxbuf
list with a null skb.  Once another 40 packets are processed that buffer
comes up again and triggers the BUG_ON.  Disabling the BUG_ON is bad
because we could end up with no available buffers.

The fix would be to create a new skb when we accept a packet, and just
drop the packet if that skb creation fails.  Then swap in the new skb
after ieee80211_rx.  ath9k already does something like this.

-- 
Bob Copeland %% www.bobcopeland.com

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux