lkml.org 
[lkml]   [2000]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[Patch] Token Ring Deadlock on SMP
Date
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>>
[unhandled content-type:application/octet-stream]
\
 
 \ /
  Last update: 2005-03-22 13:57    [W:0.039 / U:2.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site