@@ -113,7 +113,6 @@
#define DESC_FORMAT_THRESHOLD 0x72
#define SENSE_KEY_MASK 0x0F
#define SCSI_SENSE_RESPONSE_CODE_MASK 0x7F
-#define ASC_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x5D
#define LEAPRAID_LARGE_DISK_THRESHOLD 0x200000UL
#define LEAPRAID_LARGE_DISK_HEADS 255
#define LEAPRAID_LARGE_DISK_SECTORS 63
@@ -126,12 +125,6 @@
#define LEAPRAID_SCSI_HOST_SHIFT 16
#define LEAPRAID_SCSI_DRIVER_SHIFT 24
-/* SCSI ASC/ASCQ definitions. */
-#define LEAPRAID_SCSI_ASCQ_DEFAULT 0x00
-#define LEAPRAID_SCSI_ASC_POWER_ON_RESET 0x29
-#define LEAPRAID_SCSI_ASC_INVALID_CMD_CODE 0x20
-#define LEAPRAID_SCSI_ASCQ_POWER_ON_RESET 0x07
-
/* VPD Page 0x89 (ATA Information). */
#define LEAPRAID_VPD_PAGE_ATA_INFO 0x89
#define LEAPRAID_VPD_PG89_MAX_LEN 255
@@ -382,9 +382,8 @@ static void leapraid_handle_data_underrun(
} else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) {
scsiio_rep->scsi_state = LEAPRAID_SCSI_STATE_AUTOSENSE_VALID;
scsiio_rep->scsi_status = SAM_STAT_CHECK_CONDITION;
- scsi_build_sense(scmd, 0, ILLEGAL_REQUEST,
- LEAPRAID_SCSI_ASC_INVALID_CMD_CODE,
- LEAPRAID_SCSI_ASCQ_DEFAULT);
+ scsi_set_sense(scmd, 0, ILLEGAL_REQUEST,
+ INVALID_COMMAND_OP_CODE);
}
}
@@ -515,8 +514,9 @@ static void leapraid_scsiio_done_dispatch(
&sshdr))
dev_warn(&adapter->pdev->dev,
"Sense: key=0x%x asc=0x%x ascq=0x%x\n",
- sshdr.sense_key, sshdr.asc,
- sshdr.ascq);
+ sshdr.sense_key,
+ scsi_sense_asc(&sshdr),
+ scsi_sense_ascq(&sshdr));
else
dev_warn(&adapter->pdev->dev,
"Sense: Invalid sense data\n");
@@ -810,9 +810,8 @@ static bool leapraid_should_queuecommand(struct leapraid_adapter *adapter,
if (sdev_priv->block &&
scsi_get_host_state(scmd->device->host) == SHOST_RECOVERY &&
scmd->cmnd[0] == TEST_UNIT_READY) {
- scsi_build_sense(scmd, 0, UNIT_ATTENTION,
- LEAPRAID_SCSI_ASC_POWER_ON_RESET,
- LEAPRAID_SCSI_ASCQ_POWER_ON_RESET);
+ scsi_set_sense(scmd, 0, UNIT_ATTENTION,
+ I_T_NEXUS_LOSS_OCCURRED);
goto scsiio_done;
}
Refactor the leapraid 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. With this change, the locally defined macros for ASC and ASCQ values are deleted. No functional change intended. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> --- drivers/scsi/leapraid/leapraid_func.h | 7 ------- drivers/scsi/leapraid/leapraid_os.c | 15 +++++++-------- 2 files changed, 7 insertions(+), 15 deletions(-)