Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 27 Jan 2016 01:44:42 +0000 (17:44 -0800)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 27 Jan 2016 01:44:42 +0000 (17:44 -0800)
1  2 
drivers/scsi/sd.c

diff --combined drivers/scsi/sd.c
@@@ -2893,7 -2893,7 +2893,7 @@@ static int sd_revalidate_disk(struct ge
            sdkp->opt_xfer_blocks <= SD_DEF_XFER_BLOCKS &&
            sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_CACHE_SIZE)
                rw_max = q->limits.io_opt =
-                       logical_to_sectors(sdp, sdkp->opt_xfer_blocks);
+                       sdkp->opt_xfer_blocks * sdp->sector_size;
        else
                rw_max = BLK_DEF_MAX_SECTORS;
  
@@@ -3268,8 -3268,8 +3268,8 @@@ static int sd_suspend_common(struct dev
        struct scsi_disk *sdkp = dev_get_drvdata(dev);
        int ret = 0;
  
 -      if (!sdkp)
 -              return 0;       /* this can happen */
 +      if (!sdkp)      /* E.g.: runtime suspend following sd_remove() */
 +              return 0;
  
        if (sdkp->WCE && sdkp->media_present) {
                sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
@@@ -3308,9 -3308,6 +3308,9 @@@ static int sd_resume(struct device *dev
  {
        struct scsi_disk *sdkp = dev_get_drvdata(dev);
  
 +      if (!sdkp)      /* E.g.: runtime resume at the start of sd_probe() */
 +              return 0;
 +
        if (!sdkp->device->manage_start_stop)
                return 0;