Re: 2.6.20->2.6.21 - networking dies after random time

Alan Cox
2007-07-30T12:59:20Z

> So the whole locking is to be able to keep irqs enabled for a long time,
> without risking entry of the same IRQ handler on this same CPU, correct?

As implemented - on any CPU.

We also need to know that the IRQ handler is not doing useful work on
another processor which is why we take the lock after disabling the
interrupt line everywhere. Without that we might be completing an IRQ on
another CPU and that would race the transmit and make a nasty mess.

> So it seems to me that maybe the driver could be surprised via these
> spurious interrupts that happen right after the irq_enable(). Does the
> patch below make any sense in your opinion?

For MMIO it does look like that may be needed. Looks sensible.