aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
author <axboe@suse.de>2005-04-12 17:22:06 -0400
committerJames Bottomley <jejb@titanic>2005-04-16 21:10:09 -0400
commit152587deb8903c0edf483a5b889f975bc6bea7e0 (patch)
tree62fc13bff0a28134adbb523ed1a2c0efdd9a85cb /include/linux
parent56fece20086ebe32bce2c0d74ceadd516b56baae (diff)
[PATCH] fix NMI lockup with CFQ scheduler
The current problem seen is that the queue lock is actually in the SCSI device structure, so when that structure is freed on device release, we go boom if the queue tries to access the lock again. The fix here is to move the lock from the scsi_device to the queue. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/blkdev.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 70ac2860a605..ef1afc178c0a 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -355,8 +355,11 @@ struct request_queue
355 unsigned long queue_flags; 355 unsigned long queue_flags;
356 356
357 /* 357 /*
358 * protects queue structures from reentrancy 358 * protects queue structures from reentrancy. ->__queue_lock should
359 * _never_ be used directly, it is queue private. always use
360 * ->queue_lock.
359 */ 361 */
362 spinlock_t __queue_lock;
360 spinlock_t *queue_lock; 363 spinlock_t *queue_lock;
361 364
362 /* 365 /*