Commit f374ff79 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata fixes from Niklas Cassel:

 - ADATA SU680 SSDs are causing command timeouts when LPM is enabled.
   Enable the ATA_QUIRK_NOLPM quirk to prevent LPM from being enabled
   on these devices (Damien)

 - When receiving a REPORT SUPPORTED OPERATION CODES command with an
   invalid REPORTING OPTIONS format, sense data should have the field
   pointer set to byte 2 (the location of the REPORTING OPTIONS field)
   instead of incorrectly pointing to byte 1 (Damien)

* tag 'ata-7.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
  ata: libata-scsi: report correct sense field pointer in ata_scsiop_maint_in()
  ata: libata-core: disable LPM on ADATA SU680 SSD
parents 6ac51318 e6d7eba2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4188,6 +4188,9 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
	{ "ST3320[68]13AS",	"SD1[5-9]",	ATA_QUIRK_NONCQ |
						ATA_QUIRK_FIRMWARE_WARN },

	/* ADATA devices with LPM issues. */
	{ "ADATA SU680",	NULL,		ATA_QUIRK_NOLPM },

	/* Seagate disks with LPM issues */
	{ "ST1000DM010-2EP102",	NULL,		ATA_QUIRK_NOLPM },
	{ "ST2000DM008-2FR102",	NULL,		ATA_QUIRK_NOLPM },
+1 −1
Original line number Diff line number Diff line
@@ -3600,7 +3600,7 @@ static unsigned int ata_scsiop_maint_in(struct ata_device *dev,

	if (cdb[2] != 1 && cdb[2] != 3) {
		ata_dev_warn(dev, "invalid command format %d\n", cdb[2]);
		ata_scsi_set_invalid_field(dev, cmd, 1, 0xff);
		ata_scsi_set_invalid_field(dev, cmd, 2, 0xff);
		return 0;
	}