@@ -55,17 +55,17 @@ qla4xxx_read_flash(struct bsg_job *bsg_job)
rval = qla4xxx_get_flash(ha, flash_dma, offset, length);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: get flash failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else {
bsg_reply->reply_payload_rcv_len =
sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
bsg_job->reply_payload.sg_cnt,
flash, length);
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
}
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
dma_free_coherent(&ha->pdev->dev, length, flash, flash_dma);
leave:
@@ -125,12 +125,12 @@ qla4xxx_update_flash(struct bsg_job *bsg_job)
rval = qla4xxx_set_flash(ha, flash_dma, offset, length, options);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: set flash failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
dma_free_coherent(&ha->pdev->dev, length, flash, flash_dma);
leave:
@@ -179,17 +179,17 @@ qla4xxx_get_acb_state(struct bsg_job *bsg_job)
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: get ip state failed\n",
__func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else {
bsg_reply->reply_payload_rcv_len =
sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
bsg_job->reply_payload.sg_cnt,
status, sizeof(status));
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
}
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
leave:
return rval;
@@ -250,17 +250,17 @@ qla4xxx_read_nvram(struct bsg_job *bsg_job)
rval = qla4xxx_get_nvram(ha, nvram_dma, offset, len);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: get nvram failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else {
bsg_reply->reply_payload_rcv_len =
sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
bsg_job->reply_payload.sg_cnt,
nvram, len);
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
}
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
dma_free_coherent(&ha->pdev->dev, len, nvram, nvram_dma);
leave:
@@ -324,12 +324,12 @@ qla4xxx_update_nvram(struct bsg_job *bsg_job)
rval = qla4xxx_set_nvram(ha, nvram_dma, offset, len);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: set nvram failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
dma_free_coherent(&ha->pdev->dev, len, nvram, nvram_dma);
leave:
@@ -369,12 +369,12 @@ qla4xxx_restore_defaults(struct bsg_job *bsg_job)
rval = qla4xxx_restore_factory_defaults(ha, region, field0, field1);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: set nvram failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
leave:
return rval;
@@ -428,17 +428,17 @@ qla4xxx_bsg_get_acb(struct bsg_job *bsg_job)
rval = qla4xxx_get_acb(ha, acb_dma, acb_type, len);
if (rval) {
ql4_printk(KERN_ERR, ha, "%s: get acb failed\n", __func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
rval = -EIO;
} else {
bsg_reply->reply_payload_rcv_len =
sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
bsg_job->reply_payload.sg_cnt,
acb, len);
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
}
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
dma_free_coherent(&ha->pdev->dev, len, acb, acb_dma);
leave:
@@ -461,7 +461,7 @@ static void ql4xxx_execute_diag_cmd(struct bsg_job *bsg_job)
if (test_bit(DPC_RESET_HA, &ha->dpc_flags)) {
ql4_printk(KERN_INFO, ha, "%s: Adapter reset in progress. Invalid Request\n",
__func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
goto exit_diag_mem_test;
}
@@ -485,9 +485,9 @@ static void ql4xxx_execute_diag_cmd(struct bsg_job *bsg_job)
mbox_sts[7]));
if (status == QLA_SUCCESS)
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
else
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
/* Send mbox_sts to application */
bsg_job->reply_len = sizeof(struct iscsi_bsg_reply) + sizeof(mbox_sts);
@@ -497,9 +497,9 @@ static void ql4xxx_execute_diag_cmd(struct bsg_job *bsg_job)
exit_diag_mem_test:
DEBUG2(ql4_printk(KERN_INFO, ha,
"%s: bsg_reply->result = x%x, status = %s\n",
- __func__, bsg_reply->result, STATUS(status)));
+ __func__, bsg_reply->status.combined, STATUS(status)));
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
}
@@ -668,14 +668,14 @@ static void qla4xxx_execute_diag_loopback_cmd(struct bsg_job *bsg_job)
if (test_bit(AF_LOOPBACK, &ha->flags)) {
ql4_printk(KERN_INFO, ha, "%s: Loopback Diagnostics already in progress. Invalid Request\n",
__func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
goto exit_loopback_cmd;
}
if (test_bit(DPC_RESET_HA, &ha->dpc_flags)) {
ql4_printk(KERN_INFO, ha, "%s: Adapter reset in progress. Invalid Request\n",
__func__);
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
goto exit_loopback_cmd;
}
@@ -685,14 +685,14 @@ static void qla4xxx_execute_diag_loopback_cmd(struct bsg_job *bsg_job)
if (is_qla8032(ha) || is_qla8042(ha)) {
status = qla4_83xx_pre_loopback_config(ha, mbox_cmd);
if (status != QLA_SUCCESS) {
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
goto exit_loopback_cmd;
}
status = qla4_83xx_wait_for_loopback_config_comp(ha,
wait_for_link);
if (status != QLA_SUCCESS) {
- bsg_reply->result = DID_TIME_OUT << 16;
+ bsg_reply->status.combined = DID_TIME_OUT << 16;
goto restore;
}
}
@@ -707,9 +707,9 @@ static void qla4xxx_execute_diag_loopback_cmd(struct bsg_job *bsg_job)
&mbox_sts[0]);
if (status == QLA_SUCCESS)
- bsg_reply->result = DID_OK << 16;
+ bsg_reply->status.combined = DID_OK << 16;
else
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
DEBUG2(ql4_printk(KERN_INFO, ha,
"%s: mbox_sts: %08X %08X %08X %08X %08X %08X %08X %08X\n",
@@ -725,7 +725,7 @@ static void qla4xxx_execute_diag_loopback_cmd(struct bsg_job *bsg_job)
if (is_qla8032(ha) || is_qla8042(ha)) {
status = qla4_83xx_post_loopback_config(ha, mbox_cmd);
if (status != QLA_SUCCESS) {
- bsg_reply->result = DID_ERROR << 16;
+ bsg_reply->status.combined = DID_ERROR << 16;
goto exit_loopback_cmd;
}
@@ -737,15 +737,15 @@ static void qla4xxx_execute_diag_loopback_cmd(struct bsg_job *bsg_job)
status = qla4_83xx_wait_for_loopback_config_comp(ha,
wait_for_link);
if (status != QLA_SUCCESS) {
- bsg_reply->result = DID_TIME_OUT << 16;
+ bsg_reply->status.combined = DID_TIME_OUT << 16;
goto exit_loopback_cmd;
}
}
exit_loopback_cmd:
DEBUG2(ql4_printk(KERN_INFO, ha,
"%s: bsg_reply->result = x%x, status = %s\n",
- __func__, bsg_reply->result, STATUS(status)));
- bsg_job_done(bsg_job, bsg_reply->result,
+ __func__, bsg_reply->status.combined, STATUS(status)));
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
}
@@ -841,9 +841,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
default:
ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
"0x%x\n", __func__, bsg_req->msgcode);
- bsg_reply->result = (DID_ERROR << 16);
+ bsg_reply->status.combined = (DID_ERROR << 16);
bsg_reply->reply_payload_rcv_len = 0;
- bsg_job_done(bsg_job, bsg_reply->result,
+ bsg_job_done(bsg_job, bsg_reply->status.combined,
bsg_reply->reply_payload_rcv_len);
return -ENOSYS;
}
@@ -145,7 +145,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
ddb_entry = srb->ddb;
if (ddb_entry == NULL) {
- cmd->result = DID_NO_CONNECT << 16;
+ cmd->status.combined = DID_NO_CONNECT << 16;
goto status_entry_exit;
}
@@ -157,7 +157,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
case SCS_COMPLETE:
if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) {
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
break;
}
@@ -166,7 +166,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
if (!scsi_status && ((scsi_bufflen(cmd) - residual) <
cmd->underflow)) {
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
DEBUG2(printk("scsi%ld:%d:%d:%llu: %s: "
"Mid-layer Data underrun0, "
@@ -180,7 +180,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
}
}
- cmd->result = DID_OK << 16 | scsi_status;
+ cmd->status.combined = DID_OK << 16 | scsi_status;
if (scsi_status != SAM_STAT_CHECK_CONDITION)
break;
@@ -192,7 +192,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
case SCS_INCOMPLETE:
/* Always set the status to DID_ERROR, since
* all conditions result in that status anyway */
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
break;
case SCS_RESET_OCCURRED:
@@ -200,7 +200,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
ha->host_no, cmd->device->channel,
cmd->device->id, cmd->device->lun, __func__));
- cmd->result = DID_RESET << 16;
+ cmd->status.combined = DID_RESET << 16;
break;
case SCS_ABORTED:
@@ -208,7 +208,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
ha->host_no, cmd->device->channel,
cmd->device->id, cmd->device->lun, __func__));
- cmd->result = DID_RESET << 16;
+ cmd->status.combined = DID_RESET << 16;
break;
case SCS_TIMEOUT:
@@ -216,7 +216,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
ha->host_no, cmd->device->channel,
cmd->device->id, cmd->device->lun));
- cmd->result = DID_TRANSPORT_DISRUPTED << 16;
+ cmd->status.combined = DID_TRANSPORT_DISRUPTED << 16;
/*
* Mark device missing so that we won't continue to send
@@ -236,7 +236,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
cmd->device->channel, cmd->device->id,
cmd->device->lun, __func__));
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
break;
}
@@ -266,7 +266,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
scsi_bufflen(cmd),
residual));
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
break;
}
@@ -298,11 +298,11 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
residual,
scsi_bufflen(cmd)));
- cmd->result = DID_ERROR << 16 | scsi_status;
+ cmd->status.combined = DID_ERROR << 16 | scsi_status;
goto check_scsi_status;
}
- cmd->result = DID_OK << 16 | scsi_status;
+ cmd->status.combined = DID_OK << 16 | scsi_status;
check_scsi_status:
if (scsi_status == SAM_STAT_CHECK_CONDITION)
@@ -324,14 +324,14 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
if (iscsi_is_session_online(ddb_entry->sess))
qla4xxx_mark_device_missing(ddb_entry->sess);
- cmd->result = DID_TRANSPORT_DISRUPTED << 16;
+ cmd->status.combined = DID_TRANSPORT_DISRUPTED << 16;
break;
case SCS_QUEUE_FULL:
/*
* SCSI Mid-Layer handles device queue full
*/
- cmd->result = DID_OK << 16 | sts_entry->scsiStatus;
+ cmd->status.combined = DID_OK << 16 | sts_entry->scsiStatus;
DEBUG2(printk("scsi%ld:%d:%llu: %s: QUEUE FULL detected "
"compl=%02x, scsi=%02x, state=%02x, iFlags=%02x,"
" iResp=%02x\n", ha->host_no, cmd->device->id,
@@ -343,7 +343,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
break;
default:
- cmd->result = DID_ERROR << 16;
+ cmd->status.combined = DID_ERROR << 16;
break;
}
@@ -529,7 +529,7 @@ void qla4xxx_process_response_queue(struct scsi_qla_host *ha)
/* ETRY normally by sending it back with
* DID_BUS_BUSY */
- srb->cmd->result = DID_BUS_BUSY << 16;
+ srb->cmd->status.combined = DID_BUS_BUSY << 16;
kref_put(&srb->srb_ref, qla4xxx_srb_compl);
break;
@@ -4106,20 +4106,20 @@ static int qla4xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
if (test_bit(AF_EEH_BUSY, &ha->flags)) {
if (test_bit(AF_PCI_CHANNEL_IO_PERM_FAILURE, &ha->flags))
- cmd->result = DID_NO_CONNECT << 16;
+ cmd->status.combined = DID_NO_CONNECT << 16;
else
- cmd->result = DID_REQUEUE << 16;
+ cmd->status.combined = DID_REQUEUE << 16;
goto qc_fail_command;
}
if (!sess) {
- cmd->result = DID_IMM_RETRY << 16;
+ cmd->status.combined = DID_IMM_RETRY << 16;
goto qc_fail_command;
}
rval = iscsi_session_chkready(sess);
if (rval) {
- cmd->result = rval;
+ cmd->status.combined = rval;
goto qc_fail_command;
}
@@ -4802,7 +4802,7 @@ static void qla4xxx_abort_active_cmds(struct scsi_qla_host *ha, int res)
for (i = 0; i < ha->host->can_queue; i++) {
srb = qla4xxx_del_from_active_array(ha, i);
if (srb != NULL) {
- srb->cmd->result = res;
+ srb->cmd->status.combined = res;
kref_put(&srb->srb_ref, qla4xxx_srb_compl);
}
}
@@ -9283,7 +9283,7 @@ static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd)
"scsi%ld: DEVICE_RESET cmd=%p jiffies = 0x%lx, to=%x,"
"dpc_flags=%lx, status=%x allowed=%d\n", ha->host_no,
cmd, jiffies, cmd->request->timeout / HZ,
- ha->dpc_flags, cmd->result, cmd->allowed));
+ ha->dpc_flags, cmd->status.combined, cmd->allowed));
rval = qla4xxx_isp_check_reg(ha);
if (rval != QLA_SUCCESS) {
@@ -9350,7 +9350,7 @@ static int qla4xxx_eh_target_reset(struct scsi_cmnd *cmd)
"scsi%ld: TARGET_DEVICE_RESET cmd=%p jiffies = 0x%lx, "
"to=%x,dpc_flags=%lx, status=%x allowed=%d\n",
ha->host_no, cmd, jiffies, cmd->request->timeout / HZ,
- ha->dpc_flags, cmd->result, cmd->allowed));
+ ha->dpc_flags, cmd->status.combined, cmd->allowed));
rval = qla4xxx_isp_check_reg(ha);
if (rval != QLA_SUCCESS) {
An explanation of the purpose of this patch is available in the patch "scsi: Introduce the scsi_status union". Cc: Nilesh Javali <njavali@marvell.com> Cc: Manish Rangankar <mrangankar@marvell.com> Cc: GR-QLogic-Storage-Upstream@marvell.com Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- drivers/scsi/qla4xxx/ql4_bsg.c | 76 +++++++++++++++++----------------- drivers/scsi/qla4xxx/ql4_isr.c | 32 +++++++------- drivers/scsi/qla4xxx/ql4_os.c | 14 +++---- 3 files changed, 61 insertions(+), 61 deletions(-)