mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
[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 <[email protected]>
This commit is contained in:
parent
56fece2008
commit
152587deb8
5 changed files with 16 additions and 6 deletions
|
|
@ -1715,6 +1715,15 @@ request_queue_t *blk_init_queue(request_fn_proc *rfn, spinlock_t *lock)
|
|||
if (blk_init_free_list(q))
|
||||
goto out_init;
|
||||
|
||||
/*
|
||||
* if caller didn't supply a lock, they get per-queue locking with
|
||||
* our embedded lock
|
||||
*/
|
||||
if (!lock) {
|
||||
spin_lock_init(&q->__queue_lock);
|
||||
lock = &q->__queue_lock;
|
||||
}
|
||||
|
||||
q->request_fn = rfn;
|
||||
q->back_merge_fn = ll_back_merge_fn;
|
||||
q->front_merge_fn = ll_front_merge_fn;
|
||||
|
|
|
|||
Loading…
Reference in a new issue