summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2023-09-27 09:58:02 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2023-09-27 09:58:02 -0700
commit633b47cb009d09dc8f4ba9cdb3a0ca138809c7c7 (patch)
tree12eac99049a12e2fb6942c445d9c63a4a06bc217 /drivers/ata
parentb6cd17050bc0817c79924f23716198b2e935556e (diff)
parent2132df16f53b4f01ab25f5d404f36a22244ae342 (diff)
downloadlinux-633b47cb009d09dc8f4ba9cdb3a0ca138809c7c7.tar.gz
linux-633b47cb009d09dc8f4ba9cdb3a0ca138809c7c7.tar.bz2
linux-633b47cb009d09dc8f4ba9cdb3a0ca138809c7c7.zip
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley: "A single fix for libata: older devices don't support command duration limits (CDL) and some don't support report opcodes, meaning there's no way to tell if they support the command or not. Reduce the problems of incorrectly using CDL commands on older devices by checking SCSI spec compliance at SPC-5 (the spec which introduced the command) before turning on CDL" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: core: ata: Do no try to probe for CDL on old drives
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/libata-scsi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index d3f28b82c97b..0e96ed408c71 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -1835,6 +1835,9 @@ static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
hdr[2] = 0x7; /* claim SPC-5 version compatibility */
}
+ if (args->dev->flags & ATA_DFLAG_CDL)
+ hdr[2] = 0xd; /* claim SPC-6 version compatibility */
+
memcpy(rbuf, hdr, sizeof(hdr));
memcpy(&rbuf[8], "ATA ", 8);
ata_id_string(args->id, &rbuf[16], ATA_ID_PROD, 16);