diff mbox series

sd_spinup_disk() now is a little noisy

Message ID 485ac2f7-e83a-6fcd-b849-c20608e26810@gmail.com (mailing list archive)
State Superseded
Headers show
Series sd_spinup_disk() now is a little noisy | expand

Commit Message

Heiner Kallweit Sept. 10, 2021, 10:59 p.m. UTC
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.

Comments

Bart Van Assche Sept. 11, 2021, 2:37 a.m. UTC | #1
On 9/10/21 15:59, Heiner Kallweit wrote:
>   		do {
> +			u8 media_was_present = sdkp->media_present;

How about using 'bool' instead of 'u8'?

>   			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;
>   			}

Thanks,

Bart.
diff mbox series

Patch

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;
 			}