]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
scsi: core: Remember if a device is an ATA device
authorDamien Le Moal <dlemoal@kernel.org>
Wed, 11 Jun 2025 09:34:21 +0000 (18:34 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 16 Jun 2025 18:29:59 +0000 (14:29 -0400)
commitb1ba03c49a711c30e24735733dfd68f2422fa150
tree261d12592f2ba6c8172d9f80fd1fb2a1cb6693f4
parent0ec996edf4fdb727340ec9f50e2795042c23cd86
scsi: core: Remember if a device is an ATA device

scsi_add_lun() tests the device vendor string of SCSI devices to detect
if a SCSI device is in fact an ATA device, in order to correctly handle
SATL power management. The function scsi_cdl_enable() also requires
knowing if a SCSI device is an ATA device to control the state of the
device CDL feature but this function does that by testing for the
presence of the VPD page 89h (ATA INFORMATION page).
sd_read_write_same() also has a similar test.

Simplify these different methods by adding the is_ata field to struct
scsi_device to remember that a SCSI device is in fact an ATA one based
on the device vendor name test. This field can also allow low level
SCSI host adapter drivers to take special actions for ATA devices
(e.g. to better handle ATA NCQ errors).

With this, simplify scsi_cdl_enable() and sd_read_write_same().

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20250611093421.2901633-1-dlemoal@kernel.org
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi.c
drivers/scsi/scsi_scan.c
drivers/scsi/sd.c
include/scsi/scsi_device.h