aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-05-06 13:01:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-06 13:01:54 -0400
commite5e06985bec89414ce2b3f301c24d884f609b020 (patch)
treeda702c3e4facd0b41faaba34ea98aa3556ce525a
parentfa039d5f6b126fbd65eefa05db2f67e44df8f121 (diff)
parentc055f5b2614b4f758ae6cc86733f31fa4c2c5844 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] fix oops in scsi_run_queue()
-rw-r--r--drivers/scsi/scsi_lib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index e9901b8f8443..0bac91e72370 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -400,10 +400,15 @@ static inline int scsi_host_is_busy(struct Scsi_Host *shost)
400static void scsi_run_queue(struct request_queue *q) 400static void scsi_run_queue(struct request_queue *q)
401{ 401{
402 struct scsi_device *sdev = q->queuedata; 402 struct scsi_device *sdev = q->queuedata;
403 struct Scsi_Host *shost = sdev->host; 403 struct Scsi_Host *shost;
404 LIST_HEAD(starved_list); 404 LIST_HEAD(starved_list);
405 unsigned long flags; 405 unsigned long flags;
406 406
407 /* if the device is dead, sdev will be NULL, so no queue to run */
408 if (!sdev)
409 return;
410
411 shost = sdev->host;
407 if (scsi_target(sdev)->single_lun) 412 if (scsi_target(sdev)->single_lun)
408 scsi_single_lun_run(sdev); 413 scsi_single_lun_run(sdev);
409 414