lpfc 8.3.2 : Reorganization for SLI4 - Part 3 of 3
Subsystems (2)
PATCH 3/17 lpfc 8.3.2 : Reorganization for SLI4 - Part 3 of 3
Reorganization for SLI4 - Part 3 of 3
Preps the organization of the driver so that the bottom half, which interacts with the hardware, can share common code sequences for attachment, detachment, initialization, teardown, etc with new hardware.
This patch genericizes the sections that were specific to the sli3 interface and ring handling.
Signed-off-by James Smart <[email protected]>
---
lpfc_ct.c | 4 --- lpfc_els.c | 76 ++++++++++++++++++------------------------------------------ lpfc_scsi.c | 15 ++++------- 3 files changed, 30 insertions(+), 65 deletions(-)
drivers/scsi/lpfc/lpfc_ct.c +1 -3
@@ -267,8 +267,6 @@ lpfc_gen_req(struct lpfc_vport *vport, s uint32_t tmo, uint8_t retry) {struct lpfc_hba *phba = vport->phba; -struct lpfc_sli *psli = &phba->sli; -struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING ];IOCB_t *icmd;struct lpfc_iocbq *geniocb;int rc;
@@ -331,7 +329,7 @@ lpfc_gen_req(struct lpfc_vport *vport, s geniocb->drvrTimeout = icmd->ulpTimeout +LPFC_DRVR_TIMEOUT ; geniocb->vport = vport; geniocb->retry = retry; - rc =lpfc_sli_issue_iocb (phba, pring, geniocb,0 ); + rc =lpfc_sli_issue_iocb (phba,LPFC_ELS_RING , geniocb,0 );if (rc ==IOCB_ERROR ) {lpfc_sli_release_iocbq (phba, geniocb);
drivers/scsi/lpfc/lpfc_els.c +23 -53
323 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_scsi.c +6 -9
@@ -2334,9 +2334,8 @@ lpfc_scsi_tgt_reset(struct lpfc_scsi_buflpfc_printf_vlog (vport,KERN_INFO ,LOG_FCP ,"0702 Issue Target Reset to TGT %d Data: x%x x%x\n" , tgt_id, rdata->pnode->nlp_rpi, rdata->pnode->nlp_flag); - status =lpfc_sli_issue_iocb_wait (phba, - &phba->sli.ring[phba->sli.fcp_ring], - iocbq, iocbqrsp, lpfc_cmd->timeout); + status =lpfc_sli_issue_iocb_wait (phba,LPFC_FCP_RING , + iocbq, iocbqrsp, lpfc_cmd->timeout);if (status !=IOCB_SUCCESS ) {if (status ==IOCB_TIMEDOUT ) { iocbq->iocb_cmpl = lpfc_tskmgmt_def_cmpl;
@@ -2461,7 +2460,6 @@ lpfc_queuecommand(struct scsi_cmnd *cmndstruct Scsi_Host *shost = cmnd->device->host;struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;struct lpfc_hba *phba = vport->phba; -struct lpfc_sli *psli = &phba->sli;struct lpfc_rport_data *rdata = cmnd->device->hostdata;struct lpfc_nodelist *ndlp = rdata->pnode;struct lpfc_scsi_buf *lpfc_cmd;
@@ -2583,7 +2581,7 @@ lpfc_queuecommand(struct scsi_cmnd *cmndlpfc_scsi_prep_cmnd (vport, lpfc_cmd, ndlp);atomic_inc (&ndlp->cmd_pending); - err =lpfc_sli_issue_iocb (phba, &phba->sli.ring[psli->fcp_ring], + err =lpfc_sli_issue_iocb (phba,LPFC_FCP_RING , &lpfc_cmd->cur_iocbq,SLI_IOCB_RET_IOCB );if (err) {atomic_dec (&ndlp->cmd_pending);
@@ -2646,7 +2644,6 @@ lpfc_abort_handler(struct scsi_cmnd *cmnstruct Scsi_Host *shost = cmnd->device->host;struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;struct lpfc_hba *phba = vport->phba; -struct lpfc_sli_ring *pring = &phba->sli.ring[phba->sli.fcp_ring];struct lpfc_iocbq *iocb;struct lpfc_iocbq *abtsiocb;struct lpfc_scsi_buf *lpfc_cmd;
@@ -2701,7 +2698,8 @@ lpfc_abort_handler(struct scsi_cmnd *cmn abtsiocb->iocb_cmpl = lpfc_sli_abort_fcp_cmpl; abtsiocb->vport = vport; -if (lpfc_sli_issue_iocb (phba, pring, abtsiocb,0 ) ==IOCB_ERROR ) { +if (lpfc_sli_issue_iocb (phba,LPFC_FCP_RING , abtsiocb,0 ) == +IOCB_ERROR ) {lpfc_sli_release_iocbq (phba, abtsiocb); ret =FAILED ; goto out;
@@ -2827,8 +2825,7 @@ lpfc_device_reset_handler(struct scsi_cm"0703 Issue target reset to TGT %d LUN %d " "rpi x%x nlp_flag x%x\n" , cmnd->device->id, cmnd->device->lun, pnode->nlp_rpi, pnode->nlp_flag); - status =lpfc_sli_issue_iocb_wait (phba, - &phba->sli.ring[phba->sli.fcp_ring], + status =lpfc_sli_issue_iocb_wait (phba,LPFC_FCP_RING , iocbq, iocbqrsp, lpfc_cmd->timeout);if (status ==IOCB_TIMEDOUT ) { iocbq->iocb_cmpl = lpfc_tskmgmt_def_cmpl;