diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-06 13:01:54 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-06 13:01:54 -0400 |
| commit | e5e06985bec89414ce2b3f301c24d884f609b020 (patch) | |
| tree | da702c3e4facd0b41faaba34ea98aa3556ce525a | |
| parent | fa039d5f6b126fbd65eefa05db2f67e44df8f121 (diff) | |
| parent | c055f5b2614b4f758ae6cc86733f31fa4c2c5844 (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.c | 7 |
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) | |||
| 400 | static void scsi_run_queue(struct request_queue *q) | 400 | static 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 | ||
