tulip bug, alternative fix, #3 (tested)

Wolfgang Walter wolfgang.walter@stusta.mhn.de
Sun Dec 12 18:36:46 1999


On Mon, Dec 13, 1999 at 12:04:30AM +0100, Stephen R. van den Berg wrote:
> Wolfgang Walter wrote:
> >The to-much-work-handling had serveral problems. Especially it acknowledged
> >interrupts and disabled the last one occured. This was the reason for
> >permanent tx-hangs (probably tx-interrupts could be acknowlegded without
> >beeing handled).
> 
> Ok, makes sense.
> 
> >>  			/* Acknowledge all interrupt sources. */
> >>  			outl(0x8001ffff, ioaddr + CSR5);
> 
> >This will not work. You must remove the else-tree.
> 
> I presume that the outl(0x8001ffff, ioaddr + CSR5); needs to be dropped
> in that case as well?

Yes, especially that one.

> 
> >1. You switch of interrupts and never switch them on again:
> >2. Switching of interrupts was the problem because some people observed.
> 
> Ok, that proves that I didn't actually check what the IO-commands did :-).
> 
> >HAS_INTR_MITIGATION is probably a good method.
> 
> To be completely honest, I'm not even sure what it does; haven't looked
> at the 21143 data sheet yet.

At least the name is promissing :-). Maybe a printk tells us if it really
helps when it is triggered.

Wolfgang Walter