sd_spinup_disk() now is a little noisy

Heiner Kallweit
2021-09-10T22:59:44Z

For my personal taste sd_spinup_disk() is a little bit noisy now.

[ 1.942179] scsi 0:0:0:0: Direct-Access Multiple Card Reader 1.00 PQ: 0 ANSI: 0
[ 1.943651] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 1.943667] sd 0:0:0:0: [sda] Media removed, stopped polling
[ 1.949970] sd 0:0:0:0: [sda] Media removed, stopped polling
[ 1.950001] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 1.959266] sd 0:0:0:0: [sda] Media removed, stopped polling

There's not really a benefit in printing the same message multiple
times. The following helped for me, not sure however whether
that's the right way to deal with it.

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index cbd9999f9..af7e7b0da 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2124,6 +2124,8 @@ sd_spinup_disk(struct scsi_disk *sdkp)
retries = 0;

do {
+ u8 media_was_present = sdkp->media_present;
+
cmd[0] = TEST_UNIT_READY;
memset((void *) &cmd[1], 0, 9);

@@ -2138,7 +2140,8 @@ sd_spinup_disk(struct scsi_disk *sdkp)
* with any more polling.
*/
if (media_not_present(sdkp, &sshdr)) {
- sd_printk(KERN_NOTICE, sdkp, "Media removed, stopped polling\n");
+ if (media_was_present)
+ sd_printk(KERN_NOTICE, sdkp, "Media removed, stopped polling\n");
return;
}

--
2.33.0