diff options
author | <axboe@suse.de> | 2005-04-12 17:22:06 -0400 |
---|---|---|
committer | James Bottomley <jejb@titanic> | 2005-04-16 21:10:09 -0400 |
commit | 152587deb8903c0edf483a5b889f975bc6bea7e0 (patch) | |
tree | 62fc13bff0a28134adbb523ed1a2c0efdd9a85cb /include/scsi | |
parent | 56fece20086ebe32bce2c0d74ceadd516b56baae (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/scsi')
-rw-r--r-- | include/scsi/scsi_device.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 07d974051b0c..f6d051318299 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -44,7 +44,6 @@ struct scsi_device { | |||
44 | struct list_head same_target_siblings; /* just the devices sharing same target id */ | 44 | struct list_head same_target_siblings; /* just the devices sharing same target id */ |
45 | 45 | ||
46 | volatile unsigned short device_busy; /* commands actually active on low-level */ | 46 | volatile unsigned short device_busy; /* commands actually active on low-level */ |
47 | spinlock_t sdev_lock; /* also the request queue_lock */ | ||
48 | spinlock_t list_lock; | 47 | spinlock_t list_lock; |
49 | struct list_head cmd_list; /* queue of in use SCSI Command structures */ | 48 | struct list_head cmd_list; /* queue of in use SCSI Command structures */ |
50 | struct list_head starved_entry; | 49 | struct list_head starved_entry; |