lpfc 8.2.3 : Remove flawed MBX_STOP_IOCB logic
Subsystems (2)
PATCH 3/9 lpfc 8.2.3 : Remove flawed MBX_STOP_IOCB logic
Remove flawed MBX_STOP_IOCB logic
Signed-off-by James Smart <[email protected]>
drivers/scsi/lpfc/lpfc_els.c +8 -12
@@ -249,7 +249,7 @@ lpfc_issue_fabric_reglogin(struct lpfc_v mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; mbox->vport = vport; - rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT |MBX_STOP_IOCB ); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) goto fail_free_mbox;
@@ -265,7 +265,7 @@ lpfc_issue_fabric_reglogin(struct lpfc_v mbox->vport = vport; mbox->context2 =lpfc_nlp_get (ndlp); - rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT |MBX_STOP_IOCB ); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) goto fail_issue_reg_login;
@@ -429,8 +429,7 @@ lpfc_cmpl_els_flogi_nport(struct lpfc_vp mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; mbox->vport = vport; - rc =lpfc_sli_issue_mbox (phba, mbox, -MBX_NOWAIT |MBX_STOP_IOCB ); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool); goto fail;
@@ -2150,8 +2149,7 @@ lpfc_cmpl_els_rsp(struct lpfc_hba *phba,lpfc_nlp_set_state (vport, ndlp,NLP_STE_REG_LOGIN_ISSUE ); } -if (lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )) +if (lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT ) !=MBX_NOT_FINISHED ) { goto out; }
@@ -3022,8 +3020,7 @@ lpfc_els_rcv_flogi(struct lpfc_vport *vp mbox->mb.un.varInitLnk.lipsr_AL_PA =0 ; mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; mbox->vport = vport; - rc =lpfc_sli_issue_mbox - (phba, mbox, (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );lpfc_set_loopback_flag (phba);if (rc ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool);
@@ -3223,8 +3220,8 @@ lpfc_els_rcv_rps(struct lpfc_vport *vpor mbox->context2 =lpfc_nlp_get (ndlp); mbox->vport = vport; mbox->mbox_cmpl = lpfc_els_rsp_rps_acc; -if (lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )) !=MBX_NOT_FINISHED ) +if (lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT ) + !=MBX_NOT_FINISHED )/* Mbox completion will send ELS Response */ return 0 ;
@@ -4162,8 +4159,7 @@ lpfc_register_new_vport(struct lpfc_hba mbox->vport = vport; mbox->context2 =lpfc_nlp_get (ndlp); mbox->mbox_cmpl = lpfc_cmpl_reg_new_vport; -if (lpfc_sli_issue_mbox (phba, mbox, -MBX_NOWAIT |MBX_STOP_IOCB ) +if (lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT ) ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool); vport->fc_flag &= ~FC_VPORT_NEEDS_REG_VPI ;
drivers/scsi/lpfc/lpfc_hbadisc.c +12 -21
@@ -412,7 +412,7 @@ lpfc_work_done(struct lpfc_hba *phba) status >>= (4 *LPFC_ELS_RING );if ((status &HA_RXMASK ) || (pring->flag &LPFC_DEFERRED_RING_EVENT )) { -if (pring->flag &LPFC_STOP_IOCB_MASK ) { +if (pring->flag &LPFC_STOP_IOCB_EVENT ) { pring->flag |=LPFC_DEFERRED_RING_EVENT ; }else { lpfc_sli_handle_slow_ring_event(phba, pring,
@@ -629,7 +629,7 @@ lpfc_linkdown(struct lpfc_hba *phba)lpfc_unreg_did (phba,0xffff ,0xffffffff , mb); mb->vport = vport; mb->mbox_cmpl = lpfc_sli_def_mbox_cmpl; -if (lpfc_sli_issue_mbox (phba, mb, (MBX_NOWAIT |MBX_STOP_IOCB )) +if (lpfc_sli_issue_mbox (phba, mb,MBX_NOWAIT ) ==MBX_NOT_FINISHED ) {mempool_free (mb, phba->mbox_mem_pool); }
@@ -643,8 +643,7 @@ lpfc_linkdown(struct lpfc_hba *phba)lpfc_config_link (phba, mb); mb->mbox_cmpl = lpfc_sli_def_mbox_cmpl; mb->vport = vport; -if (lpfc_sli_issue_mbox (phba, mb, - (MBX_NOWAIT |MBX_STOP_IOCB )) +if (lpfc_sli_issue_mbox (phba, mb,MBX_NOWAIT ) ==MBX_NOT_FINISHED ) {mempool_free (mb, phba->mbox_mem_pool); }
@@ -1022,8 +1021,7 @@ lpfc_mbx_process_link_up(struct lpfc_hbalpfc_read_sparam (phba, sparam_mbox,0 ); sparam_mbox->vport = vport; sparam_mbox->mbox_cmpl = lpfc_mbx_cmpl_read_sparam; - rc =lpfc_sli_issue_mbox (phba, sparam_mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, sparam_mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) { mp = (struct lpfc_dmabuf *) sparam_mbox->context1;lpfc_mbuf_free (phba, mp->virt, mp->phys);
@@ -1040,8 +1038,7 @@ lpfc_mbx_process_link_up(struct lpfc_hbalpfc_config_link (phba, cfglink_mbox); cfglink_mbox->vport = vport; cfglink_mbox->mbox_cmpl = lpfc_mbx_cmpl_local_config_link; - rc =lpfc_sli_issue_mbox (phba, cfglink_mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, cfglink_mbox,MBX_NOWAIT );if (rc !=MBX_NOT_FINISHED )return ;mempool_free (cfglink_mbox, phba->mbox_mem_pool);
@@ -1219,7 +1216,7 @@ lpfc_mbx_unreg_vpi(struct lpfc_vport *vplpfc_unreg_vpi (phba, vport->vpi, mbox); mbox->vport = vport; mbox->mbox_cmpl = lpfc_mbx_cmpl_unreg_vpi; - rc =lpfc_sli_issue_mbox (phba, mbox, (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {lpfc_printf_vlog (vport,KERN_ERR ,LOG_MBOX |LOG_VPORT ,"1800 Could not issue unreg_vpi\n" );
@@ -1868,8 +1865,7 @@ lpfc_unreg_rpi(struct lpfc_vport *vport,lpfc_unreg_login (phba, vport->vpi, ndlp->nlp_rpi, mbox); mbox->vport = vport; mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; - rc =lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED )mempool_free (mbox, phba->mbox_mem_pool); }
@@ -1892,8 +1888,7 @@ lpfc_unreg_all_rpis(struct lpfc_vport *vlpfc_unreg_login (phba, vport->vpi,0xffff , mbox); mbox->vport = vport; mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; - rc =lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool); }
@@ -1912,8 +1907,7 @@ lpfc_unreg_default_rpis(struct lpfc_vporlpfc_unreg_did (phba, vport->vpi,0xffffffff , mbox); mbox->vport = vport; mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; - rc =lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {lpfc_printf_vlog (vport,KERN_ERR ,LOG_MBOX |LOG_VPORT , "1815 Could not issue "
@@ -2220,8 +2214,7 @@ lpfc_issue_clear_la(struct lpfc_hba *phblpfc_clear_la (phba, mbox); mbox->mbox_cmpl = lpfc_mbx_cmpl_clear_la; mbox->vport = vport; - rc =lpfc_sli_issue_mbox (phba, mbox, (MBX_NOWAIT | -MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool);lpfc_disc_flush_list (vport);
@@ -2244,8 +2237,7 @@ lpfc_issue_reg_vpi(struct lpfc_hba *phbalpfc_reg_vpi (phba, vport->vpi, vport->fc_myDID, regvpimbox); regvpimbox->mbox_cmpl = lpfc_mbx_cmpl_reg_vpi; regvpimbox->vport = vport; -if (lpfc_sli_issue_mbox (phba, regvpimbox, - (MBX_NOWAIT |MBX_STOP_IOCB )) +if (lpfc_sli_issue_mbox (phba, regvpimbox,MBX_NOWAIT ) ==MBX_NOT_FINISHED ) {mempool_free (regvpimbox, phba->mbox_mem_pool); }
@@ -2608,8 +2600,7 @@ lpfc_disc_timeout_handler(struct lpfc_vp initlinkmbox->mb.un.varInitLnk.lipsr_AL_PA =0 ; initlinkmbox->vport = vport; initlinkmbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; - rc =lpfc_sli_issue_mbox (phba, initlinkmbox, - (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, initlinkmbox,MBX_NOWAIT );lpfc_set_loopback_flag (phba);if (rc ==MBX_NOT_FINISHED )mempool_free (initlinkmbox, phba->mbox_mem_pool);
drivers/scsi/lpfc/lpfc_init.c +2 -2
@@ -355,7 +355,7 @@ lpfc_config_port_post(struct lpfc_hba *p phba->link_state =LPFC_LINK_DOWN ; -/* Only process IOCBs on ring 0 till hba_state is READY */ +/* Only process IOCBs on ELS ring till hba_state is READY */ if (psli->ring[psli->extra_ring].cmdringaddr) psli->ring[psli->extra_ring].flag |=LPFC_STOP_IOCB_EVENT ;if (psli->ring[psli->fcp_ring].cmdringaddr)
@@ -777,7 +777,7 @@ lpfc_handle_latt(struct lpfc_hba *phba)lpfc_read_la (phba, pmb, mp); pmb->mbox_cmpl = lpfc_mbx_cmpl_read_la; pmb->vport = vport; - rc =lpfc_sli_issue_mbox (phba, pmb, (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, pmb,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) goto lpfc_handle_latt_free_mbuf;
drivers/scsi/lpfc/lpfc_nportdisc.c +2 -4
@@ -343,8 +343,7 @@ lpfc_rcv_plogi(struct lpfc_vport *vport,lpfc_config_link (phba, mbox); mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; mbox->vport = vport; - rc =lpfc_sli_issue_mbox - (phba, mbox, (MBX_NOWAIT |MBX_STOP_IOCB )); + rc =lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT );if (rc ==MBX_NOT_FINISHED ) {mempool_free (mbox, phba->mbox_mem_pool); goto out;
@@ -828,8 +827,7 @@ lpfc_cmpl_plogi_plogi_issue(struct lpfc_ } mbox->context2 =lpfc_nlp_get (ndlp); mbox->vport = vport; -if (lpfc_sli_issue_mbox (phba, mbox, - (MBX_NOWAIT |MBX_STOP_IOCB )) +if (lpfc_sli_issue_mbox (phba, mbox,MBX_NOWAIT ) !=MBX_NOT_FINISHED ) {lpfc_nlp_set_state (vport, ndlp,NLP_STE_REG_LOGIN_ISSUE );
drivers/scsi/lpfc/lpfc_sli.c +3 -66
112 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli.h +0 -4
@@ -92,8 +92,6 @@ typedef struct lpfcMboxq {#define MBX_POLL 1/* poll mailbox till command done, then return */ #define MBX_NOWAIT 2/* issue command then return immediately */ -#define MBX_STOP_IOCB 4/* Stop iocb processing till mbox cmds -complete */ #define LPFC_MAX_RING_MASK 4/* max num of rctl/type masks allowed per ring */
@@ -129,9 +127,7 @@ struct lpfc_sli_ring {uint16_t flag;/* ring flags */ #define LPFC_DEFERRED_RING_EVENT 0x001/* Deferred processing a ring event */ #define LPFC_CALL_RING_AVAILABLE 0x002/* indicates cmd was full */ -#define LPFC_STOP_IOCB_MBX 0x010/* Stop processing IOCB cmds mbox */ #define LPFC_STOP_IOCB_EVENT 0x020/* Stop processing IOCB cmds event */ -#define LPFC_STOP_IOCB_MASK 0x030/* Stop processing IOCB cmds mask */ uint16_t abtsiotag;/* tracks next iotag to use for ABTS */ uint32_t local_getidx;/* last available cmd index (from cmdGetInx) */