ata: libata-scsi: support reporting options 2 in REPORT SUPPORTED OPERATION CODES

Add support for the reporting options value 2 of the in REPORT SUPPORTED
OPERATION CODES command in ata_scsi_report_supported_opcodes(). With this
reporting option, the specified opcode to check must have a service
action. Use ata_scsi_supported_cmd_has_sa() to check for this and fill the
command reply buffer using the one command format based on the command
support.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@kernel.org>
This commit is contained in:
Damien Le Moal 2026-06-25 09:48:02 +09:00
parent eac22d76d9
commit bff44d253f

View File

@ -3777,6 +3777,13 @@ static unsigned int ata_scsi_report_supported_opcodes(struct ata_device *dev,
return 0;
}
break;
case 2:
/* One command format, must have sa. */
if (!ata_scsi_supported_cmd_use_sa(cdb[3])) {
ata_scsi_set_invalid_field(dev, cmd, 3, 0xff);
return 0;
}
fallthrough;
case 3:
/* One command format */
sa = get_unaligned_be16(&cdb[4]);