[PATCH] block/swim3: Locking fixes

Jens Axboe axboe at kernel.dk
Mon Dec 12 22:42:37 EST 2011


On 2011-12-12 05:57, Benjamin Herrenschmidt wrote:
> The old PowerMac swim3 driver has some "interesting" locking issues,
> using a private lock and failing to lock the queue before completing
> requests, which triggered WARN_ONs among others.
> 
> This rips out the private lock, makes everything operate under the
> block queue lock, and generally makes things simpler.
> 
> We used to also share a queue between the two possible instances which
> was problematic since we might pick the wrong controller in some cases,
> so make the queue and the current request per-instance and use
> queuedata to point to our private data which is a lot cleaner.
> 
> We still share the queue lock but then, it's nearly impossible to actually
> use 2 swim3's simultaneously: one would need to have a Wallstreet
> PowerBook, the only machine afaik with two of these on the motherboard,
> and populate both hotswap bays with a floppy drive (the machine ships
> only with one), so nobody cares...
> 
> While at it, add a little fix to clear up stale interrupts when loading
> the driver or plugging a floppy drive in a bay.

Applied for current for-linus branch.

-- 
Jens Axboe



More information about the Linuxppc-dev mailing list