Refactor the cdrom driver to use the 16-bits sense_code field of
struct scsi_sense_hdr and replace all hard-coded additional sense codes
and additional sense code qualifiers with the enum values defined in
include/scsi/scsi_sense.h. This helps with code clarity as the sense codes
being processed are easier to test and self-documented.
No functional change intended.
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Johannes Thumshirn <redacted>
Reviewed-by: Hannes Reinecke <hare@kernel.org>
---
drivers/cdrom/cdrom.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 4f1fd389260f..c717e35ea2af 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -345,9 +345,8 @@ int cdrom_dummy_generic_packet(struct cdrom_device_info *cdi,
struct packet_command *cgc)
{
if (cgc->sshdr) {
- cgc->sshdr->sense_key = 0x05;
- cgc->sshdr->asc = 0x20;
- cgc->sshdr->ascq = 0x00;
+ cgc->sshdr->sense_key = ILLEGAL_REQUEST;
+ cgc->sshdr->sense_code = INVALID_COMMAND_OP_CODE;
}
cgc->stat = -EIO;@@ -2979,9 +2978,8 @@ static noinline int mmc_ioctl_cdrom_read_data(struct cdrom_device_info *cdi,
cgc->sshdr = &sshdr;
cgc->data_direction = CGC_DATA_READ;
ret = cdrom_read_block(cdi, cgc, lba, 1, format, blocksize);
- if (ret && sshdr.sense_key == 0x05 &&
- sshdr.asc == 0x20 &&
- sshdr.ascq == 0x00) {
+ if (ret && sshdr.sense_key == ILLEGAL_REQUEST &&
+ sshdr.sense_code == INVALID_COMMAND_OP_CODE) {
/*
* SCSI-II devices are not required to support
* READ_CD, so let's try switching block size--
2.55.0