[SCSI] sd: quiet spurious error messages in READ_CAPACITY(16)
authorHannes Reinecke <hare@suse.de>
Mon, 29 Mar 2010 07:29:24 +0000 (09:29 +0200)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 18:25:06 +0000 (13:25 -0500)
sd always tries to submit a READ_CAPACITY(16) CDB,
regardless whether the host actually supports it.
queuecommand() will then return DID_ABORT, which is
not qualified enough to detect the true cause here.
So better check in sd_try_rc16 first if the cdblen
is supported.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/sd.c

index 58c62ff42ab3953f98e27e230f236bb4cb98d99f..7955bc2261256c27cda37bb4074880bd11893987 100644 (file)
@@ -1573,6 +1573,8 @@ static int read_capacity_10(struct scsi_disk *sdkp, struct scsi_device *sdp,
 
 static int sd_try_rc16_first(struct scsi_device *sdp)
 {
+       if (sdp->host->max_cmd_len < 16)
+               return 0;
        if (sdp->scsi_level > SCSI_SPC_2)
                return 1;
        if (scsi_device_protection(sdp))