
From: Damien Le Moal <dlemoal@kernel.org> stable inclusion from stable-v6.6.57 commit 9e6075e112ee38bd2ac2309b925b4b74759054d2 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IB6YDK Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=... -------------------------------- [ Upstream commit c4367ac83805a2322268c9736cd8ef9124063424 ] The scsi device flag no_start_on_resume is not set by any scsi low level driver. Remove it. This reverts the changes introduced by commit 0a8589055936 ("ata,scsi: do not issue START STOP UNIT on resume"). Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Tested-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Stable-dep-of: 7a6bbc2829d4 ("scsi: sd: Do not repeat the starting disk message") Signed-off-by: Sasha Levin <sashal@kernel.org> Conflicts: drivers/scsi/sd.c [The conflict here is due to the introduction of commit 5899b8a1a5fe ("scsi: sd: try more retries of START_STOP when resuming scsi device").] Signed-off-by: Zheng Qixing <zhengqixing@huawei.com> --- drivers/scsi/sd.c | 12 +++++------- include/scsi/scsi_device.h | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 6a0b8f899718..b3d27e579543 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -4006,7 +4006,7 @@ static int sd_resume(struct device *dev) static int sd_resume_common(struct device *dev, bool runtime) { struct scsi_disk *sdkp = dev_get_drvdata(dev); - int ret = 0; + int ret; int retries = SD_START_STOP_RETRY_COUNT; if (!sdkp) /* E.g.: runtime resume at the start of sd_probe() */ @@ -4017,13 +4017,11 @@ static int sd_resume_common(struct device *dev, bool runtime) return 0; } - if (!sdkp->device->no_start_on_resume) { - sd_printk(KERN_NOTICE, sdkp, "Starting disk\n"); + sd_printk(KERN_NOTICE, sdkp, "Starting disk\n"); retry: - ret = sd_start_stop_device(sdkp, 1); - if (ret && ret != -ENODEV && retries--) - goto retry; - } + ret = sd_start_stop_device(sdkp, 1); + if (ret && ret != -ENODEV && retries--) + goto retry; if (!ret) { sd_resume(dev); diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 1c3601ad0615..d4dcb9bccf7c 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -217,7 +217,6 @@ struct scsi_device { unsigned use_192_bytes_for_3f:1; /* ask for 192 bytes from page 0x3f */ unsigned no_start_on_add:1; /* do not issue start on add */ unsigned allow_restart:1; /* issue START_UNIT in error handler */ - unsigned no_start_on_resume:1; /* Do not issue START_STOP_UNIT on resume */ unsigned start_stop_pwr_cond:1; /* Set power cond. in START_STOP_UNIT */ unsigned no_uld_attach:1; /* disable connecting to upper level drivers */ unsigned select_no_atn:1; -- 2.39.2