[Patch] Token Ring Deadlock on SMP

From: Phillips, Mike (PHILLIM@amtrak.com)
Date: Mon Mar 20 2000 - 16:12:37 EST


Attached is a patch against 2.3.99pre3-3 that fixes the deadlock on smp
systems in the token ring source routing code.

There is a three way contention issue on a single lock, net tx, rx from the
driver (so in_irq context) and from a timer. The attached solution works
but I'm not particularly proud of it. The old code that used to work used
only lock_irqsave's which is a bit extreme but worked, at some point the
locks were changed to lock_bh which worked against the timer lock, but
didn't work against the in_irq lock. I've simply changed a couple of the
locks back to lock_irq and made the timer check that if a lock is held it
just goes away and comes back another time to do its thing.

This should be sufficient for 2.4, we'll put the proper solution (the new
source routing code) into effect for 2.5

Thanks
Mike Phillips

 <<tr_smp-2.3.99pre3-3.gz>>



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:31 EST