@@ -1550,7 +1550,7 @@ static unsigned int ata_scsi_start_stop_xlat(struct ata_queued_cmd *qc)
ata_scsi_set_invalid_field(qc->dev, scmd, fp, bp);
return 1;
skip:
- scmd->result = SAM_STAT_GOOD;
+ set_status_byte(scmd, SAM_STAT_GOOD);
return 1;
}
@@ -1801,7 +1801,7 @@ static unsigned int ata_scsi_verify_xlat(struct ata_queued_cmd *qc)
return 1;
nothing_to_do:
- scmd->result = SAM_STAT_GOOD;
+ set_status_byte(scmd, SAM_STAT_GOOD);
return 1;
}
@@ -1913,7 +1913,7 @@ static unsigned int ata_scsi_rw_xlat(struct ata_queued_cmd *qc)
return 1;
nothing_to_do:
- scmd->result = SAM_STAT_GOOD;
+ set_status_byte(scmd, SAM_STAT_GOOD);
return 1;
}
@@ -1946,11 +1946,11 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc)
((cdb[2] & 0x20) || need_sense))
ata_gen_passthru_sense(qc);
else if (qc->flags & ATA_QCFLAG_SENSE_VALID)
- cmd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
else if (need_sense)
ata_gen_ata_sense(qc);
else
- cmd->result = SAM_STAT_GOOD;
+ set_status_byte(cmd, SAM_STAT_GOOD);
if (need_sense && !ap->ops->error_handler)
ata_dump_status(ap->print_id, &qc->result_tf);
@@ -2131,7 +2131,7 @@ static void ata_scsi_rbuf_fill(struct ata_scsi_args *args,
ata_scsi_rbuf_put(cmd, rc == 0, &flags);
if (rc == 0)
- cmd->result = SAM_STAT_GOOD;
+ set_status_byte(cmd, SAM_STAT_GOOD);
}
/**
@@ -2910,14 +2910,14 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc)
if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL && qc->dev->sdev)
qc->dev->sdev->locked = 0;
- qc->scsicmd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(qc->scsicmd, SAM_STAT_CHECK_CONDITION);
ata_qc_done(qc);
return;
}
/* successful completion or old EH failure path */
if (unlikely(err_mask & AC_ERR_DEV)) {
- cmd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
atapi_request_sense(qc);
return;
} else if (unlikely(err_mask)) {
@@ -2930,7 +2930,7 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc)
} else {
if (cmd->cmnd[0] == INQUIRY && (cmd->cmnd[1] & 0x03) == 0)
atapi_fixup_inquiry(cmd);
- cmd->result = SAM_STAT_GOOD;
+ set_status_byte(cmd, SAM_STAT_GOOD);
}
ata_qc_done(qc);
@@ -4111,7 +4111,7 @@ static unsigned int ata_scsi_mode_select_xlat(struct ata_queued_cmd *qc)
return 1;
skip:
- scmd->result = SAM_STAT_GOOD;
+ set_status_byte(scmd, SAM_STAT_GOOD);
return 1;
}
@@ -2095,7 +2095,7 @@ static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp)
return;
}
- scmnd->result = rsp->status;
+ set_status_byte(scmnd, rsp->status);
if (rsp->flags & SRP_RSP_FLAG_SNSVALID) {
memcpy(scmnd->sense_buffer, rsp->data +
@@ -709,7 +709,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
* But not: DID_BUS_BUSY lest one risk
* killing interrupt handler:-(
*/
- sc->result = SAM_STAT_BUSY;
+ set_status_byte(sc, SAM_STAT_BUSY);
break;
case MPI_IOCSTATUS_SCSI_INVALID_BUS: /* 0x0041 */
@@ -867,7 +867,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
if (xfer_cnt < sc->underflow) {
if (scsi_status == SAM_STAT_BUSY)
- sc->result = SAM_STAT_BUSY;
+ set_status_byte(sc, SAM_STAT_BUSY);
else {
sc->result = 0;
set_host_byte(sc,
@@ -255,7 +255,7 @@ void zfcp_fc_eval_fcp_rsp(struct fcp_resp_with_ext *fcp_rsp,
u8 rsp_flags;
set_msg_byte(scsi, COMMAND_COMPLETE);
- scsi->result |= fcp_rsp->resp.fr_status;
+ set_status_byte(scsi, fcp_rsp->resp.fr_status);
rsp_flags = fcp_rsp->resp.fr_flags;
@@ -742,7 +742,7 @@ void zfcp_scsi_dif_sense_error(struct scsi_cmnd *scmd, int ascq)
scsi_build_sense_buffer(1, scmd->sense_buffer,
ILLEGAL_REQUEST, 0x10, ascq);
set_driver_byte(scmd, DRIVER_SENSE);
- scmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(scmd, SAM_STAT_CHECK_CONDITION);
set_host_byte(scmd, DID_SOFT_ERROR);
}
@@ -1008,8 +1008,9 @@ static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_
}
if (copy_sense) {
+ u8 status = (full_command_packet->command.newcommand.status << 1);
memcpy(tw_dev->srb[request_id]->sense_buffer, full_command_packet->header.sense_data, TW_SENSE_DATA_LENGTH);
- tw_dev->srb[request_id]->result = (full_command_packet->command.newcommand.status << 1);
+ set_status_byte(tw_dev->srb[request_id], status);
retval = TW_ISR_DONT_RESULT;
goto out;
}
@@ -887,8 +887,10 @@ static int twl_fill_sense(TW_Device_Extension *tw_dev, int i, int request_id, in
}
if (copy_sense) {
+ u8 status = (full_command_packet->command.newcommand.status << 1);
+
memcpy(tw_dev->srb[request_id]->sense_buffer, header->sense_data, TW_SENSE_DATA_LENGTH);
- tw_dev->srb[request_id]->result = (full_command_packet->command.newcommand.status << 1);
+ set_status_byte(tw_dev->srb[request_id], status);
goto out;
}
out:
@@ -3668,7 +3668,7 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
== SAM_STAT_CHECK_CONDITION) {
int len;
- scsicmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(scsicmd, SAM_STAT_CHECK_CONDITION);
len = min_t(u32, le32_to_cpu(srbreply->sense_data_size),
SCSI_SENSE_BUFFERSIZE);
#ifdef AAC_DETAILED_STATUS_INFO
@@ -3682,7 +3682,7 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
/*
* OR in the scsi status (already shifted up a bit)
*/
- scsicmd->result |= le32_to_cpu(srbreply->scsi_status);
+ set_status_byte(scsicmd, le32_to_cpu(srbreply->scsi_status));
aac_fib_complete(fibptr);
scsicmd->scsi_done(scsicmd);
@@ -3692,7 +3692,7 @@ static void hba_resp_task_complete(struct aac_dev *dev,
struct scsi_cmnd *scsicmd,
struct aac_hba_resp *err) {
- scsicmd->result = err->status;
+ set_status_byte(scsicmd, err->status);
/* set residual count */
scsi_set_resid(scsicmd, le32_to_cpu(err->residual_count));
@@ -2089,9 +2089,6 @@ do { \
#define ASC_BUSY 0
#define ASC_ERROR (-1)
-/* struct scsi_cmnd function return codes */
-#define STATUS_BYTE(byte) (byte)
-
#define ASC_STATS(shost, counter) ASC_STATS_ADD(shost, counter, 1)
#ifndef ADVANSYS_STATS
#define ASC_STATS_ADD(shost, counter, count)
@@ -6039,7 +6036,7 @@ static void adv_isr_callback(ADV_DVC_VAR *adv_dvc_varp, ADV_SCSI_REQ_Q *scsiqp)
set_scsi_result(scp, DRIVER_SENSE, 0, 0,
scsiqp->scsi_status);
} else {
- scp->result = STATUS_BYTE(scsiqp->scsi_status);
+ set_status_byte(scp, scsiqp->scsi_status);
}
break;
@@ -6805,7 +6802,7 @@ static void asc_isr_callback(ASC_DVC_VAR *asc_dvc_varp, ASC_QDONE_INFO *qdonep)
set_scsi_result(scp, 0, DRIVER_SENSE, 0,
qdonep->d3.scsi_stat);
} else {
- scp->result = STATUS_BYTE(qdonep->d3.scsi_stat);
+ set_status_byte(scp, qdonep->d3.scsi_stat);
}
break;
@@ -538,7 +538,7 @@ static inline
void ahd_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
{
cmd->result &= ~0xFFFF;
- cmd->result |= status;
+ set_status_byte(cmd, status);
}
static inline
@@ -556,7 +556,7 @@ static inline
void ahc_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
{
cmd->result &= ~0xFFFF;
- cmd->result |= status;
+ set_status_byte(cmd, status);
}
static inline
@@ -463,13 +463,14 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
dev->last_cmd[c] = 0xff;
}
if (i == 0x16) {
- workreq->result = atp_readb_io(dev, c, 0x0f);
+ set_status_byte(workreq,
+ atp_readb_io(dev, c, 0x0f));
if (((dev->r1f[c][target_id] & 0x10) != 0) && is885(dev)) {
printk(KERN_WARNING "AEC67162 CRC ERROR !\n");
- workreq->result = 0x02;
+ set_status_byte(workreq, SAM_STAT_CHECK_CONDITION);
}
} else
- workreq->result = 0x02;
+ set_status_byte(workreq, SAM_STAT_CHECK_CONDITION);
if (is885(dev)) {
j = atp_readb_base(dev, 0x29) | 0x01;
@@ -2496,7 +2496,7 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
((struct adpt_device*)(cmd->device->hostdata))->tid, cmd->cmnd[0]);
}
- cmd->result |= (dev_status);
+ set_status_byte(cmd, dev_status);
if(cmd->scsi_done != NULL){
cmd->scsi_done(cmd);
@@ -2320,7 +2320,7 @@ static int handle_ioaccel_mode2_error(struct ctlr_info *h,
case IOACCEL2_STATUS_SR_TASK_COMP_GOOD:
break;
case IOACCEL2_STATUS_SR_TASK_COMP_CHK_COND:
- cmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
if (c2->error_data.data_present !=
IOACCEL2_SENSE_DATA_PRESENT) {
memset(cmd->sense_buffer, 0,
@@ -2639,7 +2639,7 @@ static void complete_scsi_command(struct CommandList *cp)
switch (ei->CommandStatus) {
case CMD_TARGET_STATUS:
- cmd->result |= ei->ScsiStatus;
+ set_status_byte(cmd, ei->ScsiStatus);
/* copy the sense data */
if (SCSI_SENSE_BUFFERSIZE < sizeof(ei->SenseInfo))
sense_data_size = SCSI_SENSE_BUFFERSIZE;
@@ -769,7 +769,7 @@ static void hptiop_finish_scsi_req(struct hptiop_hba *hba, u32 tag,
case IOP_RESULT_CHECK_CONDITION:
scsi_set_resid(scp,
scsi_bufflen(scp) - le32_to_cpu(req->dataxfer_length));
- scp->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(scp, SAM_STAT_CHECK_CONDITION);
memcpy(scp->sense_buffer, &req->sg_list, SCSI_SENSE_BUFFERSIZE);
goto skip_resid;
break;
@@ -1000,7 +1000,7 @@ static void handle_cmd_rsp(struct srp_event_struct *evt_struct)
}
if (cmnd) {
- cmnd->result |= rsp->status;
+ set_status_byte(cmnd, rsp->status);
if (((cmnd->result >> 1) & 0x1f) == CHECK_CONDITION)
memcpy(cmnd->sense_buffer,
rsp->data,
@@ -6255,7 +6255,7 @@ static void ipr_gen_sense(struct ipr_cmnd *ipr_cmd)
if (ioasc >= IPR_FIRST_DRIVER_IOASC)
return;
- ipr_cmd->scsi_cmd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(ipr_cmd->scsi_cmd, SAM_STAT_CHECK_CONDITION);
if (ipr_is_vset_device(res) &&
ioasc == IPR_IOASC_MED_DO_NOT_REALLOC &&
@@ -6410,7 +6410,7 @@ static void ipr_erp_start(struct ipr_ioa_cfg *ioa_cfg,
* exception: do not set DID_PASSTHROUGH on CHECK CONDITION
* so SCSI mid-layer and upper layers handle it accordingly.
*/
- if (scsi_cmd->result != SAM_STAT_CHECK_CONDITION)
+ if (status_byte(scsi_cmd->result) != SAM_STAT_CHECK_CONDITION)
set_host_byte(scsi_cmd, DID_PASSTHROUGH);
break;
case IPR_IOASC_BUS_WAS_RESET:
@@ -6426,7 +6426,7 @@ static void ipr_erp_start(struct ipr_ioa_cfg *ioa_cfg,
res->needs_sync_complete = 1;
break;
case IPR_IOASC_HW_DEV_BUS_STATUS:
- scsi_cmd->result |= IPR_IOASC_SENSE_STATUS(ioasc);
+ set_status_byte(scsi_cmd, IPR_IOASC_SENSE_STATUS(ioasc));
if (IPR_IOASC_SENSE_STATUS(ioasc) == SAM_STAT_CHECK_CONDITION) {
if (!ipr_get_autosense(ipr_cmd)) {
if (!ipr_is_naca_model(res)) {
@@ -2064,7 +2064,7 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp)
"due to FC_CMD_ABORTED\n");
set_host_byte(sc_cmd, DID_ERROR);
}
- sc_cmd->result |= fsp->io_status;
+ set_status_byte(sc_cmd, fsp->io_status);
break;
case FC_CMD_RESET:
FC_FCP_DBG(fsp, "Returning DID_RESET to scsi-ml "
@@ -136,8 +136,9 @@ static void sas_ata_task_done(struct sas_task *task)
}
}
- if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD ||
- ((stat->stat == SAM_STAT_CHECK_CONDITION &&
+ if (stat->stat == SAS_PROTO_RESPONSE ||
+ stat->stat == (enum exec_status)SAM_STAT_GOOD ||
+ ((stat->stat == (enum exec_status) SAM_STAT_CHECK_CONDITION &&
dev->sata_dev.class == ATA_DEV_ATAPI))) {
memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE);
@@ -115,7 +115,7 @@ static int smp_execute_task_sg(struct domain_device *dev,
}
}
if (task->task_status.resp == SAS_TASK_COMPLETE &&
- task->task_status.stat == SAM_STAT_GOOD) {
+ task->task_status.stat == (enum exec_status)SAM_STAT_GOOD) {
res = 0;
break;
}
@@ -1608,7 +1608,8 @@ mega_cmd_done(adapter_t *adapter, u8 completed[], int nstatus, int status)
} else {
cmd->sense_buffer[0] = 0x70;
cmd->sense_buffer[2] = ABORTED_COMMAND;
- cmd->result |= (CHECK_CONDITION << 1);
+ set_status_byte(cmd,
+ (CHECK_CONDITION << 1));
}
}
break;
@@ -1616,7 +1617,7 @@ mega_cmd_done(adapter_t *adapter, u8 completed[], int nstatus, int status)
case 0x08: /* ERR_DEST_DRIVE_FAILED, i.e.
SCSI_STATUS_BUSY */
set_host_byte(cmd, DID_BUS_BUSY);
- cmd->result |= status;
+ set_status_byte(cmd, status);
break;
default:
@@ -1627,7 +1628,8 @@ mega_cmd_done(adapter_t *adapter, u8 completed[], int nstatus, int status)
*/
if( cmd->cmnd[0] == TEST_UNIT_READY ) {
set_host_byte(cmd, DID_ERROR);
- cmd->result |= (RESERVATION_CONFLICT << 1);
+ set_status_byte(cmd,
+ (RESERVATION_CONFLICT << 1));
}
else
/*
@@ -1639,13 +1641,14 @@ mega_cmd_done(adapter_t *adapter, u8 completed[], int nstatus, int status)
cmd->cmnd[0] == RELEASE) ) {
set_host_byte(cmd, DID_ERROR);
- cmd->result |= (RESERVATION_CONFLICT << 1);
+ set_status_byte(cmd,
+ (RESERVATION_CONFLICT << 1));
}
else
#endif
{
set_host_byte(cmd, DID_BAD_TARGET);
- cmd->result |= status;
+ set_status_byte(cmd, status);
}
}
@@ -1601,7 +1601,7 @@ megaraid_mbox_build_cmd(adapter_t *adapter, struct scsi_cmnd *scp, int *busy)
scp->sense_buffer[0] = 0x70;
scp->sense_buffer[2] = ILLEGAL_REQUEST;
scp->sense_buffer[12] = MEGA_INVALID_FIELD_IN_CDB;
- scp->result = CHECK_CONDITION << 1;
+ set_status_byte(scp, CHECK_CONDITION << 1);
return NULL;
}
@@ -2377,7 +2377,7 @@ megaraid_mbox_dpc(unsigned long devp)
} else {
scp->sense_buffer[0] = 0x70;
scp->sense_buffer[2] = ABORTED_COMMAND;
- scp->result = CHECK_CONDITION << 1;
+ set_status_byte(scp, CHECK_CONDITION << 1);
}
}
break;
@@ -4650,7 +4650,7 @@ scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
*/
do {
if (test_bit(0, &sas_device_priv_data->ata_command_pending)) {
- scmd->result = SAM_STAT_BUSY;
+ set_status_byte(scmd, SAM_STAT_BUSY);
scmd->scsi_done(scmd);
return 0;
}
@@ -5298,7 +5298,8 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
switch (ioc_status) {
case MPI2_IOCSTATUS_BUSY:
case MPI2_IOCSTATUS_INSUFFICIENT_RESOURCES:
- scmd->result = SAM_STAT_BUSY;
+ scmd->result = 0;
+ set_status_byte(scmd, SAM_STAT_BUSY);
break;
case MPI2_IOCSTATUS_SCSI_DEVICE_NOT_THERE:
@@ -5360,9 +5361,10 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
break;
if (xfer_cnt < scmd->underflow) {
- if (scsi_status == SAM_STAT_BUSY)
- scmd->result = SAM_STAT_BUSY;
- else {
+ if (scsi_status == SAM_STAT_BUSY) {
+ scmd->result = 0;
+ set_status_byte(scmd, SAM_STAT_BUSY);
+ } else {
scmd->result = 0;
set_host_byte(scmd, DID_SOFT_ERROR);
}
@@ -1333,7 +1333,7 @@ static int mvs_exec_internal_tmf_task(struct domain_device *dev,
}
if (task->task_status.resp == SAS_TASK_COMPLETE &&
- task->task_status.stat == SAM_STAT_GOOD) {
+ task->task_status.stat == (enum exec_status)SAM_STAT_GOOD) {
res = TMF_RESP_FUNC_COMPLETE;
break;
}
@@ -1316,7 +1316,7 @@ static void mvumi_complete_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd,
struct scsi_cmnd *scmd = cmd->scmd;
cmd->scmd->SCp.ptr = NULL;
- scmd->result = ob_frame->req_status;
+ set_status_byte(scmd, ob_frame->req_status);
switch (ob_frame->req_status) {
case SAM_STAT_GOOD:
@@ -727,7 +727,8 @@ static int pm8001_exec_internal_tmf_task(struct domain_device *dev,
}
if (task->task_status.resp == SAS_TASK_COMPLETE &&
- task->task_status.stat == SAM_STAT_GOOD) {
+ task->task_status.stat ==
+ (enum exec_status)SAM_STAT_GOOD) {
res = TMF_RESP_FUNC_COMPLETE;
break;
}
@@ -816,7 +817,7 @@ pm8001_exec_internal_task_abort(struct pm8001_hba_info *pm8001_ha,
}
if (task->task_status.resp == SAS_TASK_COMPLETE &&
- task->task_status.stat == SAM_STAT_GOOD) {
+ task->task_status.stat == (enum exec_status)SAM_STAT_GOOD) {
res = TMF_RESP_FUNC_COMPLETE;
break;
@@ -2541,7 +2541,7 @@ static void pmcraid_frame_auto_sense(struct pmcraid_cmd *cmd)
u32 failing_lba = 0;
memset(sense_buf, 0, SCSI_SENSE_BUFFERSIZE);
- cmd->scsi_cmd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd->scsi_cmd, SAM_STAT_CHECK_CONDITION);
if (RES_IS_VSET(res->cfg_entry) &&
ioasc == PMCRAID_IOASC_ME_READ_ERROR_NO_REALLOC &&
@@ -2662,7 +2662,7 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
break;
case PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR:
- scsi_cmd->result |= PMCRAID_IOASC_SENSE_STATUS(ioasc);
+ set_status_byte(scsi_cmd, PMCRAID_IOASC_SENSE_STATUS(ioasc));
res->sync_reqd = 1;
/* if check_condition is not active return with error otherwise
@@ -3707,7 +3707,7 @@ qla1280_status_entry(struct scsi_qla_host *ha, struct response *pkt,
/* Target busy or queue full */
if ((scsi_status & 0xFF) == SAM_STAT_TASK_SET_FULL ||
(scsi_status & 0xFF) == SAM_STAT_BUSY) {
- CMD_RESULT(cmd) = scsi_status & 0xff;
+ set_status_byte(cmd, scsi_status & 0xff);
} else {
/* Save ISP completion status */
@@ -2175,7 +2175,7 @@ qla2x00_handle_dif_error(srb_t *sp, struct sts_entry_24xx *sts24)
0x10, 0x1);
set_driver_byte(cmd, DRIVER_SENSE);
set_host_byte(cmd, DID_ABORT);
- cmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
return 1;
}
@@ -2185,7 +2185,7 @@ qla2x00_handle_dif_error(srb_t *sp, struct sts_entry_24xx *sts24)
0x10, 0x3);
set_driver_byte(cmd, DRIVER_SENSE);
set_host_byte(cmd, DID_ABORT);
- cmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
return 1;
}
@@ -2195,7 +2195,7 @@ qla2x00_handle_dif_error(srb_t *sp, struct sts_entry_24xx *sts24)
0x10, 0x2);
set_driver_byte(cmd, DRIVER_SENSE);
set_host_byte(cmd, DID_ABORT);
- cmd->result |= SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
return 1;
}
@@ -713,31 +713,31 @@ static int scsi_eh_completed_normally(struct scsi_cmnd *scmd)
* anything special.
*/
switch (status_byte(scmd->result)) {
- case GOOD:
+ case SAM_STAT_GOOD:
scsi_handle_queue_ramp_up(scmd->device);
/* FALLTHROUGH */
- case COMMAND_TERMINATED:
+ case SAM_STAT_COMMAND_TERMINATED:
return SUCCESS;
- case CHECK_CONDITION:
+ case SAM_STAT_CHECK_CONDITION:
return scsi_check_sense(scmd);
- case CONDITION_GOOD:
- case INTERMEDIATE_GOOD:
- case INTERMEDIATE_C_GOOD:
+ case SAM_STAT_CONDITION_MET:
+ case SAM_STAT_INTERMEDIATE:
+ case SAM_STAT_INTERMEDIATE_CONDITION_MET:
/*
* who knows? FIXME(eric)
*/
return SUCCESS;
- case RESERVATION_CONFLICT:
+ case SAM_STAT_RESERVATION_CONFLICT:
if (scmd->cmnd[0] == TEST_UNIT_READY)
/* it is a success, we probed the device and
* found it */
return SUCCESS;
/* otherwise, we failed to send the command */
return FAILED;
- case QUEUE_FULL:
+ case SAM_STAT_TASK_SET_FULL:
scsi_handle_queue_full(scmd->device);
/* fall through */
- case BUSY:
+ case SAM_STAT_BUSY:
return NEEDS_RETRY;
default:
return FAILED;
@@ -1845,14 +1845,14 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
* check the status byte to see if this indicates anything special.
*/
switch (status_byte(scmd->result)) {
- case QUEUE_FULL:
+ case SAM_STAT_TASK_SET_FULL:
scsi_handle_queue_full(scmd->device);
/*
* the case of trying to send too many commands to a
* tagged queueing device.
*/
/* FALLTHROUGH */
- case BUSY:
+ case SAM_STAT_BUSY:
/*
* device can't talk to us at the moment. Should only
* occur (SAM-3) when the task queue is empty, so will cause
@@ -1860,16 +1860,16 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
* device.
*/
return ADD_TO_MLQUEUE;
- case GOOD:
+ case SAM_STAT_GOOD:
if (scmd->cmnd[0] == REPORT_LUNS)
scmd->device->sdev_target->expecting_lun_change = 0;
scsi_handle_queue_ramp_up(scmd->device);
/* FALLTHROUGH */
- case COMMAND_TERMINATED:
+ case SAM_STAT_COMMAND_TERMINATED:
return SUCCESS;
- case TASK_ABORTED:
+ case SAM_STAT_TASK_ABORTED:
goto maybe_retry;
- case CHECK_CONDITION:
+ case SAM_STAT_CHECK_CONDITION:
rtn = scsi_check_sense(scmd);
if (rtn == NEEDS_RETRY)
goto maybe_retry;
@@ -1878,16 +1878,16 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
* to collect the sense and redo the decide
* disposition */
return rtn;
- case CONDITION_GOOD:
- case INTERMEDIATE_GOOD:
- case INTERMEDIATE_C_GOOD:
- case ACA_ACTIVE:
+ case SAM_STAT_CONDITION_MET:
+ case SAM_STAT_INTERMEDIATE:
+ case SAM_STAT_INTERMEDIATE_CONDITION_MET:
+ case SAM_STAT_ACA_ACTIVE:
/*
* who knows? FIXME(eric)
*/
return SUCCESS;
- case RESERVATION_CONFLICT:
+ case SAM_STAT_RESERVATION_CONFLICT:
sdev_printk(KERN_INFO, scmd->device,
"reservation conflict\n");
set_host_byte(scmd, DID_NEXUS_FAILURE);
@@ -2553,7 +2553,7 @@ static void pqi_process_raid_io_error(struct pqi_io_request *io_request)
sense_data_length);
}
- scmd->result = scsi_status;
+ set_status_byte(scmd, scsi_status);
set_host_byte(scmd, host_byte);
}
@@ -2643,7 +2643,7 @@ static void pqi_process_aio_io_error(struct pqi_io_request *io_request)
scsi_build_sense_buffer(0, scmd->sense_buffer, HARDWARE_ERROR,
0x3e, 0x1);
- scmd->result = scsi_status;
+ set_status_byte(scmd, scsi_status);
set_host_byte(scmd, host_byte);
}
@@ -4665,7 +4665,7 @@ static bool pqi_raid_bypass_retry_needed(struct pqi_io_request *io_request)
return false;
scmd = io_request->scmd;
- if ((scmd->result & 0xff) == SAM_STAT_GOOD)
+ if (status_byte(scmd->result) == SAM_STAT_GOOD)
return false;
if (host_byte(scmd->result) == DID_NO_CONNECT)
return false;
@@ -1010,7 +1010,7 @@ static void storvsc_command_completion(struct storvsc_cmd_request *cmd_request,
vm_srb = &cmd_request->vstor_packet.vm_srb;
data_transfer_length = vm_srb->data_transfer_length;
- scmnd->result = vm_srb->scsi_status;
+ set_status_byte(scmnd, vm_srb->scsi_status);
if (scmnd->result) {
if (scsi_normalize_sense(scmnd->sense_buffer,
@@ -154,7 +154,7 @@ static void virtscsi_complete_cmd(struct virtio_scsi *vscsi, void *buf)
"cmd %p response %u status %#02x sense_len %u\n",
sc, resp->response, resp->status, resp->sense_len);
- sc->result = resp->status;
+ set_status_byte(sc, resp->status);
virtscsi_compute_resid(sc, virtio32_to_cpu(vscsi->vdev, resp->resid));
switch (resp->response) {
case VIRTIO_SCSI_S_OK:
@@ -185,7 +185,7 @@ void rtsx_invoke_transport(struct scsi_cmnd *srb, struct rtsx_chip *chip)
goto handle_errors;
}
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
/*
* If we have a failure, we're going to do a REQUEST_SENSE
@@ -194,7 +194,7 @@ void rtsx_invoke_transport(struct scsi_cmnd *srb, struct rtsx_chip *chip)
*/
if (result == TRANSPORT_FAILED) {
/* set the result so the higher layers expect this data */
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
memcpy(srb->sense_buffer,
(unsigned char *)&chip->sense_buffer[SCSI_LUN(srb)],
sizeof(struct sense_data_t));
@@ -582,7 +582,7 @@ static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
pr_debug("%s() called for scsi_cmnd: %p cdb: 0x%02x\n",
__func__, sc, sc->cmnd[0]);
- sc->result = SAM_STAT_GOOD;
+ set_status_byte(sc, SAM_STAT_GOOD);
set_host_byte(sc, DID_OK);
if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
(se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
@@ -606,10 +606,10 @@ static int tcm_loop_queue_status(struct se_cmd *se_cmd)
memcpy(sc->sense_buffer, se_cmd->sense_buffer,
SCSI_SENSE_BUFFERSIZE);
- sc->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(sc, SAM_STAT_CHECK_CONDITION);
set_driver_byte(sc, DRIVER_SENSE);
} else
- sc->result = se_cmd->scsi_status;
+ set_status_byte(sc, se_cmd->scsi_status);
set_host_byte(sc, DID_OK);
if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
@@ -406,10 +406,11 @@ static void mts_transfer_cleanup( struct urb *transfer )
static void mts_transfer_done( struct urb *transfer )
{
+ enum status_byte scsi_stauts;
MTS_INT_INIT();
- context->srb->result &= MTS_SCSI_ERR_MASK;
- context->srb->result |= (unsigned)(*context->scsi_status)<<1;
+ scsi_status = (enum status_byte)(*context->scsi_status) << 1);
+ set_status_byte(context->srb, scsi_status);
mts_transfer_cleanup(transfer);
}
@@ -701,10 +701,10 @@ static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us)
rc = datafab_id_device(us, info);
if (rc == USB_STOR_TRANSPORT_GOOD) {
info->sense_key = NO_SENSE;
- srb->result = SUCCESS;
+ set_status_byte(srb, SAM_STAT_GOOD);
} else {
info->sense_key = UNIT_ATTENTION;
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
}
return rc;
}
@@ -629,12 +629,12 @@ static void isd200_invoke_transport( struct us_data *us,
case USB_STOR_TRANSPORT_GOOD:
/* Indicate a good result */
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
break;
case USB_STOR_TRANSPORT_NO_SENSE:
usb_stor_dbg(us, "-- transport indicates protocol failure\n");
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
return;
case USB_STOR_TRANSPORT_FAILED:
@@ -675,11 +675,11 @@ static void isd200_invoke_transport( struct us_data *us,
}
if (result == ISD200_GOOD) {
isd200_build_sense(us, srb);
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
/* If things are really okay, then let's show that */
if ((srb->sense_buffer[2] & 0xf) == 0x0)
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
} else {
srb->result = 0;
set_host_byte(srb, DID_ERROR);
@@ -692,7 +692,7 @@ static void isd200_invoke_transport( struct us_data *us,
* condition, show that in the result code
*/
if (transferStatus == USB_STOR_TRANSPORT_FAILED)
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
return;
/*
@@ -1241,7 +1241,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
/* copy InquiryData */
usb_stor_set_xfer_buf((unsigned char *) &info->InquiryData,
sizeof(info->InquiryData), srb);
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
break;
@@ -1261,7 +1261,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
isd200_srb_set_bufflen(srb, 0);
} else {
usb_stor_dbg(us, " Media Status not supported, just report okay\n");
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
}
break;
@@ -1279,7 +1279,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
isd200_srb_set_bufflen(srb, 0);
} else {
usb_stor_dbg(us, " Media Status not supported, just report okay\n");
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
}
break;
@@ -1302,7 +1302,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
usb_stor_set_xfer_buf((unsigned char *) &readCapacityData,
sizeof(readCapacityData), srb);
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
}
break;
@@ -1387,7 +1387,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
isd200_srb_set_bufflen(srb, 0);
} else {
usb_stor_dbg(us, " Not removeable media, just report okay\n");
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
}
break;
@@ -1413,7 +1413,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
isd200_srb_set_bufflen(srb, 0);
} else {
usb_stor_dbg(us, " Nothing to do, just report okay\n");
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
sendToTransport = 0;
}
break;
@@ -626,10 +626,10 @@ static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us)
rc = jumpshot_id_device(us, info);
if (rc == USB_STOR_TRANSPORT_GOOD) {
info->sense_key = NO_SENSE;
- srb->result = SUCCESS;
+ set_status_byte(srb, SAM_STAT_GOOD);
} else {
info->sense_key = UNIT_ATTENTION;
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
}
return rc;
}
@@ -824,9 +824,10 @@ static void rts51x_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
if ((srb->cmnd[0] == TEST_UNIT_READY) &&
(chip->pwr_state == US_SUSPEND)) {
if (TST_LUN_READY(chip, srb->device->lun)) {
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
} else {
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb,
+ SAM_STAT_CHECK_CONDITION);
memcpy(srb->sense_buffer,
media_not_present,
US_SENSE_SIZE);
@@ -837,12 +838,13 @@ static void rts51x_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) {
int prevent = srb->cmnd[4] & 0x1;
if (prevent) {
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb,
+ SAM_STAT_CHECK_CONDITION);
memcpy(srb->sense_buffer,
invalid_cmd_field,
US_SENSE_SIZE);
} else {
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
}
usb_stor_dbg(us, "ALLOW_MEDIUM_REMOVAL\n");
goto out;
@@ -852,7 +854,7 @@ static void rts51x_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
chip->proto_handler_backup(srb, us);
/* Check whether card is plugged in */
if (srb->cmnd[0] == TEST_UNIT_READY) {
- if (srb->result == SAM_STAT_GOOD) {
+ if (status_byte(srb->result) == SAM_STAT_GOOD) {
SET_LUN_READY(chip, srb->device->lun);
if (card_first_show) {
card_first_show = 0;
@@ -575,7 +575,7 @@ static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb)
*/
if (++us->last_sector_retries < 3)
return;
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
memcpy(srb->sense_buffer, record_not_found,
sizeof(record_not_found));
}
@@ -626,12 +626,12 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
/* if the transport provided its own sense data, don't auto-sense */
if (result == USB_STOR_TRANSPORT_NO_SENSE) {
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
last_sector_hacks(us, srb);
return;
}
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
/*
* Determine if we need to auto-sense
@@ -801,7 +801,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
#endif
/* set the result so the higher layers expect this data */
- srb->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(srb, SAM_STAT_CHECK_CONDITION);
scdd = scsi_sense_desc_find(srb->sense_buffer,
SCSI_SENSE_BUFFERSIZE, 4);
@@ -820,7 +820,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
* won't realize we did an unsolicited auto-sense.
*/
if (result == USB_STOR_TRANSPORT_GOOD) {
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
srb->sense_buffer[0] = 0x0;
}
@@ -861,7 +861,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
*/
if (unlikely((us->fflags & US_FL_INITIAL_READ10) &&
srb->cmnd[0] == READ_10)) {
- if (srb->result == SAM_STAT_GOOD) {
+ if (status_byte(srb->result) == SAM_STAT_GOOD) {
set_bit(US_FLIDX_READ10_WORKED, &us->dflags);
} else if (test_bit(US_FLIDX_READ10_WORKED, &us->dflags)) {
clear_bit(US_FLIDX_READ10_WORKED, &us->dflags);
@@ -882,8 +882,9 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
}
/* Did we transfer less than the minimum amount required? */
- if ((srb->result == SAM_STAT_GOOD || srb->sense_buffer[2] == 0) &&
- scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow) {
+ if ((status_byte(srb->result) == SAM_STAT_GOOD ||
+ srb->sense_buffer[2] == 0) &&
+ scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow) {
srb->result = 0;
set_host_byte(srb, DID_ERROR);
}
@@ -170,7 +170,7 @@ static void uas_sense(struct urb *urb, struct scsi_cmnd *cmnd)
memcpy(cmnd->sense_buffer, sense_iu->sense, len);
}
- cmnd->result = sense_iu->status;
+ set_status_byte(cmnd, sense_iu->status);
}
static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *prefix,
@@ -636,7 +636,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
(cmnd->cmnd[0] == ATA_12 || cmnd->cmnd[0] == ATA_16)) {
memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
sizeof(usb_stor_sense_invalidCDB));
- cmnd->result = SAM_STAT_CHECK_CONDITION;
+ set_status_byte(cmnd, SAM_STAT_CHECK_CONDITION);
cmnd->scsi_done(cmnd);
return 0;
}
@@ -375,7 +375,7 @@ static int usb_stor_control_thread(void * __us)
usb_stor_dbg(us, "Faking INQUIRY command\n");
fill_inquiry_response(us, data_ptr, 36);
- srb->result = SAM_STAT_GOOD;
+ set_status_byte(srb, SAM_STAT_GOOD);
}
/* we've got a command, let's do it! */
@@ -213,7 +213,11 @@ enum scsi_driver_byte {
* host_byte = set by low-level driver to indicate status.
* driver_byte = set by mid-level.
*/
-#define status_byte(result) (((result) >> 1) & 0x7f)
+static inline enum scsi_status_byte status_byte(int result)
+{
+ return (result >> 1) & 0x7f;
+}
+
static inline enum scsi_msg_byte msg_byte(int result)
{
return (result >> 8) & 0xff;
@@ -355,6 +355,12 @@ static inline void set_driver_byte(struct scsi_cmnd *cmd,
cmd->result = (cmd->result & 0x00ffffff) | (status << 24);
}
+static inline void set_status_byte(struct scsi_cmnd *cmd,
+ char status)
+{
+ cmd->result = (cmd->result & 0xffffff00) | status;
+}
+
static inline void set_scsi_result(struct scsi_cmnd *cmd,
enum scsi_driver_byte db,
enum scsi_host_byte hb,
@@ -190,18 +190,19 @@ struct scsi_varlen_cdb_hdr {
* SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft
* T10/1561-D Revision 4 Draft dated 7th November 2002.
*/
-#define SAM_STAT_GOOD 0x00
-#define SAM_STAT_CHECK_CONDITION 0x02
-#define SAM_STAT_CONDITION_MET 0x04
-#define SAM_STAT_BUSY 0x08
-#define SAM_STAT_INTERMEDIATE 0x10
-#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14
-#define SAM_STAT_RESERVATION_CONFLICT 0x18
-#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */
-#define SAM_STAT_TASK_SET_FULL 0x28
-#define SAM_STAT_ACA_ACTIVE 0x30
-#define SAM_STAT_TASK_ABORTED 0x40
-
+enum scsi_status_byte {
+ SAM_STAT_GOOD = 0x00,
+ SAM_STAT_CHECK_CONDITION = 0x02,
+ SAM_STAT_CONDITION_MET = 0x04,
+ SAM_STAT_BUSY = 0x08,
+ SAM_STAT_INTERMEDIATE = 0x10,
+ SAM_STAT_INTERMEDIATE_CONDITION_MET = 0x14,
+ SAM_STAT_RESERVATION_CONFLICT = 0x18,
+ SAM_STAT_COMMAND_TERMINATED = 0x22, /* obsolete in SAM-3 */
+ SAM_STAT_TASK_SET_FULL = 0x28,
+ SAM_STAT_ACA_ACTIVE = 0x30,
+ SAM_STAT_TASK_ABORTED = 0x40,
+};
/*
* Status codes. These are deprecated as they are shifted 1 bit right
* from those found in the SCSI standards. This causes confusion for
<SmPL> @@ struct scsi_cmnd *c; expression E1; @@ ( -c->result |= E1; +set_status_byte(c, E1); | -c->result |= (E1); +set_status_byte(c, E1); ) </SmPL> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> --- drivers/ata/libata-scsi.c | 20 ++++++++-------- drivers/infiniband/ulp/srp/ib_srp.c | 2 +- drivers/message/fusion/mptscsih.c | 4 ++-- drivers/s390/scsi/zfcp_fc.h | 2 +- drivers/s390/scsi/zfcp_scsi.c | 2 +- drivers/scsi/3w-9xxx.c | 3 ++- drivers/scsi/3w-sas.c | 4 +++- drivers/scsi/aacraid/aachba.c | 6 ++--- drivers/scsi/advansys.c | 7 ++---- drivers/scsi/aic7xxx/aic79xx_osm.h | 2 +- drivers/scsi/aic7xxx/aic7xxx_osm.h | 2 +- drivers/scsi/atp870u.c | 7 +++--- drivers/scsi/dpt_i2o.c | 2 +- drivers/scsi/hpsa.c | 4 ++-- drivers/scsi/hptiop.c | 2 +- drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +- drivers/scsi/ipr.c | 6 ++--- drivers/scsi/libfc/fc_fcp.c | 2 +- drivers/scsi/libsas/sas_ata.c | 5 ++-- drivers/scsi/libsas/sas_expander.c | 2 +- drivers/scsi/megaraid.c | 13 +++++++---- drivers/scsi/megaraid/megaraid_mbox.c | 4 ++-- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 12 ++++++---- drivers/scsi/mvsas/mv_sas.c | 2 +- drivers/scsi/mvumi.c | 2 +- drivers/scsi/pm8001/pm8001_sas.c | 5 ++-- drivers/scsi/pmcraid.c | 4 ++-- drivers/scsi/qla1280.c | 2 +- drivers/scsi/qla2xxx/qla_isr.c | 6 ++--- drivers/scsi/scsi_error.c | 40 ++++++++++++++++---------------- drivers/scsi/smartpqi/smartpqi_init.c | 6 ++--- drivers/scsi/storvsc_drv.c | 2 +- drivers/scsi/virtio_scsi.c | 2 +- drivers/staging/rts5208/rtsx_transport.c | 4 ++-- drivers/target/loopback/tcm_loop.c | 6 ++--- drivers/usb/image/microtek.c | 5 ++-- drivers/usb/storage/datafab.c | 4 ++-- drivers/usb/storage/isd200.c | 22 +++++++++--------- drivers/usb/storage/jumpshot.c | 4 ++-- drivers/usb/storage/realtek_cr.c | 12 ++++++---- drivers/usb/storage/transport.c | 17 +++++++------- drivers/usb/storage/uas.c | 4 ++-- drivers/usb/storage/usb.c | 2 +- include/scsi/scsi.h | 6 ++++- include/scsi/scsi_cmnd.h | 6 +++++ include/scsi/scsi_proto.h | 25 ++++++++++---------- 46 files changed, 163 insertions(+), 140 deletions(-)