diff options
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r-- | drivers/scsi/scsi_error.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index f17aa7aa7879..47a1ffc4c904 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -1029,6 +1029,7 @@ retry: | |||
1029 | rtn = NEEDS_RETRY; | 1029 | rtn = NEEDS_RETRY; |
1030 | } else { | 1030 | } else { |
1031 | timeleft = wait_for_completion_timeout(&done, timeout); | 1031 | timeleft = wait_for_completion_timeout(&done, timeout); |
1032 | rtn = SUCCESS; | ||
1032 | } | 1033 | } |
1033 | 1034 | ||
1034 | shost->eh_action = NULL; | 1035 | shost->eh_action = NULL; |
@@ -2306,6 +2307,12 @@ scsi_reset_provider(struct scsi_device *dev, int flag) | |||
2306 | } | 2307 | } |
2307 | 2308 | ||
2308 | scmd = scsi_get_command(dev, GFP_KERNEL); | 2309 | scmd = scsi_get_command(dev, GFP_KERNEL); |
2310 | if (!scmd) { | ||
2311 | rtn = FAILED; | ||
2312 | put_device(&dev->sdev_gendev); | ||
2313 | goto out_put_autopm_host; | ||
2314 | } | ||
2315 | |||
2309 | blk_rq_init(NULL, &req); | 2316 | blk_rq_init(NULL, &req); |
2310 | scmd->request = &req; | 2317 | scmd->request = &req; |
2311 | 2318 | ||