diff options
| author | Igor Pylypiv <ipylypiv@google.com> | 2025-04-22 10:21:23 -0700 |
|---|---|---|
| committer | Damien Le Moal <dlemoal@kernel.org> | 2025-04-25 10:23:14 +0900 |
| commit | 11533932f5c506f66281a147ff8469b97c108ab4 (patch) | |
| tree | db2991e0aee19d195b97a7709006ef7bf6678a6f /drivers/ata/libata-sata.c | |
| parent | 23a8e0df49b851ed1ad12f87c52d113be8a6b6e2 (diff) | |
ata: libata-scsi: Do not set the INFORMATION field twice for ATA PT
For ATA PASS-THROUGH + fixed format sense data + NCQ autosense
the INFORMATION sense data field is being written twice:
- 1st write: (redundant)
scsi_set_sense_information() sets the INFORMATION field to ATA LBA.
This is incorrect for ATA PASS-THROUGH.
- 2nd write: (correct)
ata_scsi_set_passthru_sense_fields() sets the INFORMATION field
to ATA ERROR/STATUS/DEVICE/COUNT(7:0) as per SAT spec.
There is no user-visible issue because second write overwrites
the incorrect data from the first write.
This patch eliminates the reduntant write by moving the INFORMATION
sense data field population logic to ata_scsi_qc_complete().
Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Diffstat (limited to 'drivers/ata/libata-sata.c')
| -rw-r--r-- | drivers/ata/libata-sata.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c index 4e3034af285e..cb46ce276bb1 100644 --- a/drivers/ata/libata-sata.c +++ b/drivers/ata/libata-sata.c @@ -1659,8 +1659,6 @@ void ata_eh_analyze_ncq_error(struct ata_link *link) if (ata_scsi_sense_is_valid(sense_key, asc, ascq)) { ata_scsi_set_sense(dev, qc->scsicmd, sense_key, asc, ascq); - ata_scsi_set_sense_information(dev, qc->scsicmd, - &qc->result_tf); qc->flags |= ATA_QCFLAG_SENSE_VALID; } } |
