scsi: fc: use bsg_job_done
fc_bsg_jobdone() and bsg_job_done() are 1:1 copies now so use the bsg-lib one instead of the FC private implementation. Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Acked-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
6aa858cd33
commit
06548160df
|
@ -893,7 +893,7 @@ static void zfcp_fc_ct_els_job_handler(void *data)
|
||||||
jr->reply_payload_rcv_len = job->reply_payload.payload_len;
|
jr->reply_payload_rcv_len = job->reply_payload.payload_len;
|
||||||
jr->reply_data.ctels_reply.status = FC_CTELS_STATUS_OK;
|
jr->reply_data.ctels_reply.status = FC_CTELS_STATUS_OK;
|
||||||
jr->result = zfcp_ct_els->status ? -EIO : 0;
|
jr->result = zfcp_ct_els->status ? -EIO : 0;
|
||||||
fc_bsg_jobdone(job, jr->result, jr->reply_payload_rcv_len);
|
bsg_job_done(job, jr->result, jr->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct zfcp_fc_wka_port *zfcp_fc_job_wka_port(struct bsg_job *job)
|
static struct zfcp_fc_wka_port *zfcp_fc_job_wka_port(struct bsg_job *job)
|
||||||
|
|
|
@ -3179,7 +3179,7 @@ bfad_im_bsg_vendor_request(struct bsg_job *job)
|
||||||
bsg_reply->reply_payload_rcv_len = job->reply_payload.payload_len;
|
bsg_reply->reply_payload_rcv_len = job->reply_payload.payload_len;
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
|
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
error:
|
error:
|
||||||
|
@ -3555,7 +3555,7 @@ bfad_im_bsg_els_ct_request(struct bsg_job *job)
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
|
|
||||||
if (rc == BFA_STATUS_OK)
|
if (rc == BFA_STATUS_OK)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
|
|
@ -1946,7 +1946,7 @@ static int ibmvfc_bsg_request(struct bsg_job *job)
|
||||||
ibmvfc_free_event(evt);
|
ibmvfc_free_event(evt);
|
||||||
spin_unlock_irqrestore(vhost->host->host_lock, flags);
|
spin_unlock_irqrestore(vhost->host->host_lock, flags);
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
rc = 0;
|
rc = 0;
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -1912,7 +1912,7 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct fc_frame *fp,
|
||||||
bsg_reply->result = (PTR_ERR(fp) == -FC_EX_CLOSED) ?
|
bsg_reply->result = (PTR_ERR(fp) == -FC_EX_CLOSED) ?
|
||||||
-ECONNABORTED : -ETIMEDOUT;
|
-ECONNABORTED : -ETIMEDOUT;
|
||||||
job->reply_len = sizeof(uint32_t);
|
job->reply_len = sizeof(uint32_t);
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
kfree(info);
|
kfree(info);
|
||||||
return;
|
return;
|
||||||
|
@ -1947,7 +1947,7 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct fc_frame *fp,
|
||||||
bsg_reply->reply_payload_rcv_len =
|
bsg_reply->reply_payload_rcv_len =
|
||||||
job->reply_payload.payload_len;
|
job->reply_payload.payload_len;
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
kfree(info);
|
kfree(info);
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,7 +371,7 @@ lpfc_bsg_send_mgmt_cmd_cmp(struct lpfc_hba *phba,
|
||||||
|
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -645,7 +645,7 @@ lpfc_bsg_rport_els_cmp(struct lpfc_hba *phba,
|
||||||
|
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -1138,7 +1138,7 @@ lpfc_bsg_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
|
||||||
job->dd_data = NULL;
|
job->dd_data = NULL;
|
||||||
/* complete the job back to userspace */
|
/* complete the job back to userspace */
|
||||||
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
|
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
spin_lock_irqsave(&phba->ct_ev_lock, flags);
|
spin_lock_irqsave(&phba->ct_ev_lock, flags);
|
||||||
}
|
}
|
||||||
|
@ -1364,7 +1364,7 @@ lpfc_bsg_hba_get_event(struct bsg_job *job)
|
||||||
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
|
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
|
||||||
job->dd_data = NULL;
|
job->dd_data = NULL;
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1462,7 +1462,7 @@ lpfc_issue_ct_rsp_cmp(struct lpfc_hba *phba,
|
||||||
|
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -1891,7 +1891,7 @@ lpfc_sli3_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job)
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
/* complete the job back to userspace if no error */
|
/* complete the job back to userspace if no error */
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -2181,7 +2181,7 @@ lpfc_sli4_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job)
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
/* complete the job back to userspace if no error */
|
/* complete the job back to userspace if no error */
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -2296,7 +2296,7 @@ lpfc_sli4_bsg_diag_mode_end(struct bsg_job *job)
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
/* complete the job back to userspace if no error */
|
/* complete the job back to userspace if no error */
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -2449,7 +2449,7 @@ lpfc_sli4_bsg_link_diag_test(struct bsg_job *job)
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
/* complete the job back to userspace if no error */
|
/* complete the job back to userspace if no error */
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -3310,7 +3310,7 @@ lpfc_bsg_diag_loopback_run(struct bsg_job *job)
|
||||||
job->dd_data = NULL;
|
job->dd_data = NULL;
|
||||||
/* complete the job back to userspace if no error */
|
/* complete the job back to userspace if no error */
|
||||||
if (rc == IOCB_SUCCESS)
|
if (rc == IOCB_SUCCESS)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -3354,7 +3354,7 @@ lpfc_bsg_get_dfc_rev(struct bsg_job *job)
|
||||||
job_error:
|
job_error:
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -3420,7 +3420,7 @@ lpfc_bsg_issue_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq)
|
||||||
|
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -3669,7 +3669,7 @@ lpfc_bsg_issue_read_mbox_ext_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq)
|
||||||
/* if the job is still active, call job done */
|
/* if the job is still active, call job done */
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply = job->reply;
|
bsg_reply = job->reply;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -3707,7 +3707,7 @@ lpfc_bsg_issue_write_mbox_ext_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq)
|
||||||
/* if the job is still active, call job done */
|
/* if the job is still active, call job done */
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply = job->reply;
|
bsg_reply = job->reply;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4150,7 +4150,7 @@ lpfc_bsg_sli_cfg_write_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job,
|
||||||
/* wait for additoinal external buffers */
|
/* wait for additoinal external buffers */
|
||||||
|
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return SLI_CONFIG_HANDLED;
|
return SLI_CONFIG_HANDLED;
|
||||||
|
|
||||||
|
@ -4377,7 +4377,7 @@ lpfc_bsg_read_ebuf_get(struct lpfc_hba *phba, struct bsg_job *job)
|
||||||
}
|
}
|
||||||
|
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return SLI_CONFIG_HANDLED;
|
return SLI_CONFIG_HANDLED;
|
||||||
|
@ -4494,7 +4494,7 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job,
|
||||||
|
|
||||||
/* wait for additoinal external buffers */
|
/* wait for additoinal external buffers */
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return SLI_CONFIG_HANDLED;
|
return SLI_CONFIG_HANDLED;
|
||||||
|
|
||||||
|
@ -4963,7 +4963,7 @@ lpfc_bsg_mbox_cmd(struct bsg_job *job)
|
||||||
/* job done */
|
/* job done */
|
||||||
bsg_reply->result = 0;
|
bsg_reply->result = 0;
|
||||||
job->dd_data = NULL;
|
job->dd_data = NULL;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
} else if (rc == 1)
|
} else if (rc == 1)
|
||||||
/* job submitted, will complete later*/
|
/* job submitted, will complete later*/
|
||||||
|
@ -5074,7 +5074,7 @@ lpfc_bsg_menlo_cmd_cmp(struct lpfc_hba *phba,
|
||||||
|
|
||||||
if (job) {
|
if (job) {
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5293,7 +5293,7 @@ lpfc_forced_link_speed(struct bsg_job *job)
|
||||||
job_error:
|
job_error:
|
||||||
bsg_reply->result = rc;
|
bsg_reply->result = rc;
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ qla2x00_bsg_job_done(void *data, void *ptr, int res)
|
||||||
struct fc_bsg_reply *bsg_reply = bsg_job->reply;
|
struct fc_bsg_reply *bsg_reply = bsg_job->reply;
|
||||||
|
|
||||||
bsg_reply->result = res;
|
bsg_reply->result = res;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
sp->free(vha, sp);
|
sp->free(vha, sp);
|
||||||
}
|
}
|
||||||
|
@ -244,7 +244,7 @@ qla24xx_proc_fcp_prio_cfg_cmd(struct bsg_job *bsg_job)
|
||||||
}
|
}
|
||||||
exit_fcp_prio_cfg:
|
exit_fcp_prio_cfg:
|
||||||
if (!ret)
|
if (!ret)
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -942,7 +942,7 @@ qla2x00_process_loopback(struct bsg_job *bsg_job)
|
||||||
bsg_job->request_payload.sg_list,
|
bsg_job->request_payload.sg_list,
|
||||||
bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
|
bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
|
||||||
if (!rval)
|
if (!rval)
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
@ -976,7 +976,7 @@ qla84xx_reset(struct bsg_job *bsg_job)
|
||||||
ql_dbg(ql_dbg_user, vha, 0x7031,
|
ql_dbg(ql_dbg_user, vha, 0x7031,
|
||||||
"Vendor request 84xx reset completed.\n");
|
"Vendor request 84xx reset completed.\n");
|
||||||
bsg_reply->result = DID_OK;
|
bsg_reply->result = DID_OK;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1090,7 +1090,7 @@ qla84xx_updatefw(struct bsg_job *bsg_job)
|
||||||
bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
|
bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
|
||||||
|
|
||||||
if (!rval)
|
if (!rval)
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
@ -1288,7 +1288,7 @@ qla84xx_mgmt_cmd(struct bsg_job *bsg_job)
|
||||||
dma_pool_free(ha->s_dma_pool, mn, mn_dma);
|
dma_pool_free(ha->s_dma_pool, mn, mn_dma);
|
||||||
|
|
||||||
if (!rval)
|
if (!rval)
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
@ -1375,7 +1375,7 @@ qla24xx_iidma(struct bsg_job *bsg_job)
|
||||||
}
|
}
|
||||||
|
|
||||||
bsg_reply->result = DID_OK;
|
bsg_reply->result = DID_OK;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1484,7 +1484,7 @@ qla2x00_read_optrom(struct bsg_job *bsg_job)
|
||||||
ha->optrom_buffer = NULL;
|
ha->optrom_buffer = NULL;
|
||||||
ha->optrom_state = QLA_SWAITING;
|
ha->optrom_state = QLA_SWAITING;
|
||||||
mutex_unlock(&ha->optrom_mutex);
|
mutex_unlock(&ha->optrom_mutex);
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
@ -1520,7 +1520,7 @@ qla2x00_update_optrom(struct bsg_job *bsg_job)
|
||||||
ha->optrom_buffer = NULL;
|
ha->optrom_buffer = NULL;
|
||||||
ha->optrom_state = QLA_SWAITING;
|
ha->optrom_state = QLA_SWAITING;
|
||||||
mutex_unlock(&ha->optrom_mutex);
|
mutex_unlock(&ha->optrom_mutex);
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
@ -1571,7 +1571,7 @@ qla2x00_update_fru_versions(struct bsg_job *bsg_job)
|
||||||
done:
|
done:
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1621,7 +1621,7 @@ qla2x00_read_fru_status(struct bsg_job *bsg_job)
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->reply_payload_rcv_len = sizeof(*sr);
|
bsg_reply->reply_payload_rcv_len = sizeof(*sr);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1667,7 +1667,7 @@ qla2x00_write_fru_status(struct bsg_job *bsg_job)
|
||||||
done:
|
done:
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1712,7 +1712,7 @@ qla2x00_write_i2c(struct bsg_job *bsg_job)
|
||||||
done:
|
done:
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1761,7 +1761,7 @@ qla2x00_read_i2c(struct bsg_job *bsg_job)
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->reply_payload_rcv_len = sizeof(*i2c);
|
bsg_reply->reply_payload_rcv_len = sizeof(*i2c);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1940,7 +1940,7 @@ qla24xx_process_bidir_cmd(struct bsg_job *bsg_job)
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->reply_payload_rcv_len = 0;
|
bsg_reply->reply_payload_rcv_len = 0;
|
||||||
bsg_reply->result = (DID_OK) << 16;
|
bsg_reply->result = (DID_OK) << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
/* Always return success, vendor rsp carries correct status */
|
/* Always return success, vendor rsp carries correct status */
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2106,7 +2106,7 @@ qla26xx_serdes_op(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2148,7 +2148,7 @@ qla8044_serdes_op(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2180,7 +2180,7 @@ qla27xx_get_flash_upd_cap(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2226,7 +2226,7 @@ qla27xx_set_flash_upd_cap(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2285,7 +2285,7 @@ qla27xx_get_bbcr_data(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
bsg_job->reply_len = sizeof(struct fc_bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2342,7 +2342,7 @@ qla2x00_get_priv_stats(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(*bsg_reply);
|
bsg_job->reply_len = sizeof(*bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
dma_free_coherent(&ha->pdev->dev, sizeof(*stats),
|
dma_free_coherent(&ha->pdev->dev, sizeof(*stats),
|
||||||
|
@ -2386,7 +2386,7 @@ qla2x00_do_dport_diagnostics(struct bsg_job *bsg_job)
|
||||||
|
|
||||||
bsg_job->reply_len = sizeof(*bsg_reply);
|
bsg_job->reply_len = sizeof(*bsg_reply);
|
||||||
bsg_reply->result = DID_OK << 16;
|
bsg_reply->result = DID_OK << 16;
|
||||||
fc_bsg_jobdone(bsg_job, bsg_reply->result,
|
bsg_job_done(bsg_job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
|
|
||||||
kfree(dd);
|
kfree(dd);
|
||||||
|
|
|
@ -3555,41 +3555,6 @@ fc_vport_sched_delete(struct work_struct *work)
|
||||||
* BSG support
|
* BSG support
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* fc_bsg_jobdone - completion routine for bsg requests that the LLD has
|
|
||||||
* completed
|
|
||||||
* @job: fc_bsg_job that is complete
|
|
||||||
* @result: job reply result
|
|
||||||
* @reply_payload_rcv_len: length of payload received
|
|
||||||
*/
|
|
||||||
void fc_bsg_jobdone(struct bsg_job *job, int result,
|
|
||||||
unsigned int reply_payload_rcv_len)
|
|
||||||
{
|
|
||||||
struct request *req = job->req;
|
|
||||||
struct request *rsp = req->next_rq;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
err = job->req->errors = result;
|
|
||||||
|
|
||||||
if (err < 0)
|
|
||||||
/* we're only returning the result field in the reply */
|
|
||||||
job->req->sense_len = sizeof(uint32_t);
|
|
||||||
else
|
|
||||||
job->req->sense_len = job->reply_len;
|
|
||||||
|
|
||||||
/* we assume all request payload was transferred, residual == 0 */
|
|
||||||
req->resid_len = 0;
|
|
||||||
|
|
||||||
if (rsp) {
|
|
||||||
WARN_ON(reply_payload_rcv_len > rsp->resid_len);
|
|
||||||
|
|
||||||
/* set reply (bidi) residual */
|
|
||||||
rsp->resid_len -= min(reply_payload_rcv_len, rsp->resid_len);
|
|
||||||
}
|
|
||||||
blk_complete_request(req);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(fc_bsg_jobdone);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fc_bsg_job_timeout - handler for when a bsg request timesout
|
* fc_bsg_job_timeout - handler for when a bsg request timesout
|
||||||
* @req: request that timed out
|
* @req: request that timed out
|
||||||
|
@ -3797,7 +3762,7 @@ fc_bsg_host_dispatch(struct request_queue *q, struct Scsi_Host *shost,
|
||||||
bsg_reply->reply_payload_rcv_len = 0;
|
bsg_reply->reply_payload_rcv_len = 0;
|
||||||
bsg_reply->result = ret;
|
bsg_reply->result = ret;
|
||||||
job->reply_len = sizeof(uint32_t);
|
job->reply_len = sizeof(uint32_t);
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return FC_DISPATCH_UNLOCKED;
|
return FC_DISPATCH_UNLOCKED;
|
||||||
}
|
}
|
||||||
|
@ -3875,7 +3840,7 @@ fc_bsg_rport_dispatch(struct request_queue *q, struct Scsi_Host *shost,
|
||||||
bsg_reply->reply_payload_rcv_len = 0;
|
bsg_reply->reply_payload_rcv_len = 0;
|
||||||
bsg_reply->result = ret;
|
bsg_reply->result = ret;
|
||||||
job->reply_len = sizeof(uint32_t);
|
job->reply_len = sizeof(uint32_t);
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
return FC_DISPATCH_UNLOCKED;
|
return FC_DISPATCH_UNLOCKED;
|
||||||
}
|
}
|
||||||
|
@ -3936,7 +3901,7 @@ fc_bsg_request_handler(struct request_queue *q, struct Scsi_Host *shost,
|
||||||
bsg_reply->reply_payload_rcv_len = 0;
|
bsg_reply->reply_payload_rcv_len = 0;
|
||||||
bsg_reply->result = -ENOMSG;
|
bsg_reply->result = -ENOMSG;
|
||||||
job->reply_len = sizeof(uint32_t);
|
job->reply_len = sizeof(uint32_t);
|
||||||
fc_bsg_jobdone(job, bsg_reply->result,
|
bsg_job_done(job, bsg_reply->result,
|
||||||
bsg_reply->reply_payload_rcv_len);
|
bsg_reply->reply_payload_rcv_len);
|
||||||
spin_lock_irq(q->queue_lock);
|
spin_lock_irq(q->queue_lock);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -808,8 +808,6 @@ struct fc_vport *fc_vport_create(struct Scsi_Host *shost, int channel,
|
||||||
struct fc_vport_identifiers *);
|
struct fc_vport_identifiers *);
|
||||||
int fc_vport_terminate(struct fc_vport *vport);
|
int fc_vport_terminate(struct fc_vport *vport);
|
||||||
int fc_block_scsi_eh(struct scsi_cmnd *cmnd);
|
int fc_block_scsi_eh(struct scsi_cmnd *cmnd);
|
||||||
void fc_bsg_jobdone(struct bsg_job *job, int result,
|
|
||||||
unsigned int reply_payload_rcv_len);
|
|
||||||
|
|
||||||
static inline struct Scsi_Host *fc_bsg_to_shost(struct bsg_job *job)
|
static inline struct Scsi_Host *fc_bsg_to_shost(struct bsg_job *job)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue