]> Gentwo Git Trees - linux/.git/commit
ata: libata-scsi: Do not set the INFORMATION field twice for ATA PT
authorIgor Pylypiv <ipylypiv@google.com>
Tue, 22 Apr 2025 17:21:23 +0000 (10:21 -0700)
committerDamien Le Moal <dlemoal@kernel.org>
Fri, 25 Apr 2025 01:23:14 +0000 (10:23 +0900)
commit11533932f5c506f66281a147ff8469b97c108ab4
treedb2991e0aee19d195b97a7709006ef7bf6678a6f
parent23a8e0df49b851ed1ad12f87c52d113be8a6b6e2
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>
drivers/ata/libata-sata.c
drivers/ata/libata-scsi.c
drivers/ata/libata.h