Florian Westphal wrote:
When transferring data at full speed, the DM9000 network interface sometimes stops sending/receiving data. Worse, ksoftirqd consumes 100% cpu and the net tx watchdog never triggers. Fix by spin_lock_irqsave() in dm9000_start_xmit() to prevent the interrupt handler from interfering.Signed-off-by: Florian Westphal <[EMAIL PROTECTED]> --- Actually the comments ('Disable all interrupts, iow(db, DM9000_IMR, IMR_PAR) etc) give the impression that the interrupt handler cannot run during dm9000_start_xmit(), however this isn't correct (perhaps the chipset has some weird timing issues?). The interface lockup usually occurs between 30 and 360 seconds after starting transmitting data (netcat /dev/zero) at full speed; with this patch applied I haven't been able to reproduce hangs yet (ran for > 2h). FTR: This is a dm9000 on XScale-PXA255 rev 6 (ARMv5TE)/Compulab CM-x255, i.e. a module not supported by the vanilla kernel. Tested on (patched) 2.6.18. dm9000.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)
applied - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
