Re: 2.4.12-ac4 10Mbit NE2k interrupt load kills p166

Samium Gromoff
2001-12-09T23:03:19Z

> What might be interesting would be to edit 8390.c and change
>
> /* Mask interrupts from the ethercard.
> SMP: We have to grab the lock here otherwise the IRQ handler
> on another CPU can flip window and race the IRQ mask set. We end
> up trashing the mcast filter not disabling irqs if we dont lock
> */
>
> spin_lock_irqsave(&ei_local->page_lock, flags);
> outb_p(0x00, e8390_base + EN0_IMR);
> spin_unlock_irqrestore(&ei_local->page_lock, flags);
>
> to use
>
> /* this is the missing spin_trylock_irqsave longhand.. */
> save_flags(flags);
> __cli();
> if(!spin_trylock(&ei_local->page_lock))
> {
> restore_flags(flags);
> return 1;
> }
> outb_p(0x00, e8390_base + EN0_IMR);
> spin_unlock_irqrestore(&ei_local->page_lock, flags);
building the kernel is in the progress, so i`ll report asap...

I`m so glad somebody still cares of the good ol` boxes :-)

regards, Samium Gromoff