]> git.neil.brown.name Git - history.git/commit
[PATCH] blk_run_queues() locking fix
authorAndrew Morton <akpm@digeo.com>
Tue, 26 Nov 2002 01:56:31 +0000 (17:56 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 26 Nov 2002 01:56:31 +0000 (17:56 -0800)
commit6e2db78b64622ff51eb9e161fb9e2f4a48d7d851
tree268192a0bb88aa6c3fef95153f0701d2ce087bc8
parente781203473e64706670200ed443ee295d04718e7
[PATCH] blk_run_queues() locking fix

blk_run_queues() places queues onto a local list without locking.  But
interrupt-time activity in scsi_lib.c will replug these queues, which
involves accessing that list which blk_run_queues() is walking.

Net effect: list corruption and an oops.  Very hard to reproduce...

So hold the lock while blk_run_queues() is walking the local list.

The patch was acked by Jens.  It also uninlines a few largeish
functions and adds a couple of WARN_ON()s in code which worried me.
drivers/block/ll_rw_blk.c