[PATCH] b43: use rx desc underrun interrupt

Thommy Jakobsson thommyj at gmail.com
Sat Apr 20 16:16:26 EDT 2013



On Sat, 20 Apr 2013, Michael Büsch wrote:

> On Sat, 20 Apr 2013 21:47:10 +0200 (CEST)
> Thommy Jakobsson <thommyj at gmail.com> wrote:
> 
> > > And I think you need to set ring->current_slot to the value of ring->ops->get_current_slot().
> > > Not 100% sure, though, since it is years since I worked on that code.
> > > 
> > Is that really needed? They should already be the same since the device 
> > has thrown the underflow interrupt
> 
> Hm not sure. But should be easy to verify.
I did check it in the beginning when I was testing the patch, just printed 
the indexes in the kernel log. But of course if there is a race condition
it could be hard to catch. Have used the patch for several weeks 
and several 100Gb now, so it does seem to work. 

The reason for getting this interrupt is that the current descriptor 
pointer (RXDPTR) has the same value as the descriptor index (RXINDEX). The 
descriptor index is set at the end of b43_dma_rx with 
ops->set_current_rxslot. At the next line, and with the same value, the 
ring->current slot is set. So in my opinion I don't need to set it. But I 
could have missed something.

BR,
Thommy


More information about the b43-dev mailing list