aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r--drivers/scsi/sd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 4e08d1cd704d..bb669d32ccd0 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2893,7 +2893,7 @@ static int sd_revalidate_disk(struct gendisk *disk)
2893 sdkp->opt_xfer_blocks <= SD_DEF_XFER_BLOCKS && 2893 sdkp->opt_xfer_blocks <= SD_DEF_XFER_BLOCKS &&
2894 sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_CACHE_SIZE) 2894 sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_CACHE_SIZE)
2895 rw_max = q->limits.io_opt = 2895 rw_max = q->limits.io_opt =
2896 logical_to_sectors(sdp, sdkp->opt_xfer_blocks); 2896 sdkp->opt_xfer_blocks * sdp->sector_size;
2897 else 2897 else
2898 rw_max = BLK_DEF_MAX_SECTORS; 2898 rw_max = BLK_DEF_MAX_SECTORS;
2899 2899
@@ -3268,8 +3268,8 @@ static int sd_suspend_common(struct device *dev, bool ignore_stop_errors)
3268 struct scsi_disk *sdkp = dev_get_drvdata(dev); 3268 struct scsi_disk *sdkp = dev_get_drvdata(dev);
3269 int ret = 0; 3269 int ret = 0;
3270 3270
3271 if (!sdkp) 3271 if (!sdkp) /* E.g.: runtime suspend following sd_remove() */
3272 return 0; /* this can happen */ 3272 return 0;
3273 3273
3274 if (sdkp->WCE && sdkp->media_present) { 3274 if (sdkp->WCE && sdkp->media_present) {
3275 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n"); 3275 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
@@ -3308,6 +3308,9 @@ static int sd_resume(struct device *dev)
3308{ 3308{
3309 struct scsi_disk *sdkp = dev_get_drvdata(dev); 3309 struct scsi_disk *sdkp = dev_get_drvdata(dev);
3310 3310
3311 if (!sdkp) /* E.g.: runtime resume at the start of sd_probe() */
3312 return 0;
3313
3311 if (!sdkp->device->manage_start_stop) 3314 if (!sdkp->device->manage_start_stop)
3312 return 0; 3315 return 0;
3313 3316