On Fri, Jun 03, 2005 at 07:25:58PM +0000, David S. Miller wrote:
>
> This version incorporates two bug fixes from Michael.
>
> 1) Check the mailbox register for 0x1 while polling on the COMPLETE
> state bit.
>
> 2) Remove the BUG_ON() check in tg3_restart_ints(), it can legally and
> harmlessly occur.
>
> Point #2 may want some refinements, but this patch below is good
> enough for testing.
Nice work Dave.
I was thinking of how we could avoid waiting for the interrupt to
occur after setting SYNC. Here is one way which is essentially
a hand-coded spin lock. In fact with a bit of work we could convert
it back to a real spin lock with spin_trylock.
The advantage of this is that we won't have to rely on the interrupt
to occur after setting SYNC. The disadvantage is that on certain
architectures (sparc64 obviously :) we're now doing the relatively
expensive bit operations on each IRQ.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
p
Description: Text document
|