From: James Bottomley Date: Wed, 27 Jan 2016 01:44:42 +0000 (-0800) Subject: Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes X-Git-Tag: v4.5-rc2~24^2 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=6344a5cd3e8acf6e9823046cebd00b16faacdb1a;hp=-c;p=cascardo%2Flinux.git Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes --- 6344a5cd3e8acf6e9823046cebd00b16faacdb1a diff --combined drivers/scsi/sd.c index 84fa4c46eaa6,ec163d08f6c3..bb669d32ccd0 --- a/drivers/scsi/sd.c +++ b/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;