Revert "scsi: sd: Do not issue commands to suspended disks on shutdown"
This reverts commit deacabef68
which is
commit 99398d2070ab03d13f90b758ad397e19a65fffb0 upstream.
It breaks the Android ABI so revert it for now, if it is needed in the
future, it can be brought back in an ABI-safe way.
Bug: 161946584
Change-Id: I0134634ac6acd636d23f65d3f1bc4d3b57ff1206
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
66a17692b1
commit
d2a83cf376
@ -3646,8 +3646,7 @@ static int sd_remove(struct device *dev)
|
||||
|
||||
device_del(&sdkp->disk_dev);
|
||||
del_gendisk(sdkp->disk);
|
||||
if (!sdkp->suspended)
|
||||
sd_shutdown(dev);
|
||||
sd_shutdown(dev);
|
||||
|
||||
put_disk(sdkp->disk);
|
||||
return 0;
|
||||
@ -3778,9 +3777,6 @@ static int sd_suspend_common(struct device *dev, bool runtime)
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
if (!ret)
|
||||
sdkp->suspended = true;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -3800,26 +3796,21 @@ static int sd_suspend_runtime(struct device *dev)
|
||||
static int sd_resume(struct device *dev, bool runtime)
|
||||
{
|
||||
struct scsi_disk *sdkp = dev_get_drvdata(dev);
|
||||
int ret = 0;
|
||||
int ret;
|
||||
|
||||
if (!sdkp) /* E.g.: runtime resume at the start of sd_probe() */
|
||||
return 0;
|
||||
|
||||
if (!sd_do_start_stop(sdkp->device, runtime)) {
|
||||
sdkp->suspended = false;
|
||||
if (!sd_do_start_stop(sdkp->device, runtime))
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!sdkp->device->no_start_on_resume) {
|
||||
sd_printk(KERN_NOTICE, sdkp, "Starting disk\n");
|
||||
ret = sd_start_stop_device(sdkp, 1);
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
if (!ret)
|
||||
opal_unlock_from_suspend(sdkp->opal_dev);
|
||||
sdkp->suspended = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -131,7 +131,6 @@ struct scsi_disk {
|
||||
u8 provisioning_mode;
|
||||
u8 zeroing_mode;
|
||||
u8 nr_actuators; /* Number of actuators */
|
||||
bool suspended; /* Disk is suspended (stopped) */
|
||||
unsigned ATO : 1; /* state of disk ATO bit */
|
||||
unsigned cache_override : 1; /* temp override of WCE,RCD */
|
||||
unsigned WCE : 1; /* state of disk WCE bit */
|
||||
|
Loading…
Reference in New Issue
Block a user