ath_rx_tasklet improvements...
authormtaylor <mtaylor@0192ed92-7a03-0410-a25b-9323aeb14dbd>
Thu, 10 Apr 2008 06:19:53 +0000 (06:19 +0000)
committermtaylor <mtaylor@0192ed92-7a03-0410-a25b-9323aeb14dbd>
Thu, 10 Apr 2008 06:19:53 +0000 (06:19 +0000)
commit9b8af6f68a01a3bde7eba15a1c0461f5c5f75767
tree3ee1472cc70c1e9bbc55af7fae36490398a36870
parentfcb3fdbe90a7e3950df4f45b8913196bb2aa8285
ath_rx_tasklet improvements...

*  Only hold the RX queue lock while removing and while re-inserting a buffer -
   allowing pre-emption to work properly while the tasklet is reaping and
   recycling rx buffers.

*  All skb and bus handling is managed in the ath_rxbuf_init function now.

*  Do not stop processing when ath_rxbuf_init fails, because that means low
   free skb but does NOT mean the queue is fully processed.  Since we also keep
   our skbuff except during a very brief period when we free one and reallocate
   one - unless pre-emption or SMP steals it, chances are very good we can keep
   processing the queue even under low memory conditions -- and avoid dreaded
   rx overruns.

*  Add missing locks around code blocks that iterate over rx buffer list in
   flush/drain/init/cleanup/etc helper functions.

git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3519 0192ed92-7a03-0410-a25b-9323aeb14dbd
ath/if_ath.c
ath/if_athvar.h