Lines Matching refs:pring
90 struct lpfc_sli_ring *pring,
765 lpfc_cmd_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_cmd_iocb() argument
767 return (IOCB_t *) (((char *) pring->sli.sli3.cmdringaddr) + in lpfc_cmd_iocb()
768 pring->sli.sli3.cmdidx * phba->iocb_cmd_size); in lpfc_cmd_iocb()
782 lpfc_resp_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_resp_iocb() argument
784 return (IOCB_t *) (((char *) pring->sli.sli3.rspringaddr) + in lpfc_resp_iocb()
785 pring->sli.sli3.rspidx * phba->iocb_rsp_size); in lpfc_resp_iocb()
1266 struct lpfc_sli_ring *pring; in __lpfc_sli_release_iocbq_s4() local
1289 pring = phba->sli4_hba.els_wq->pring; in __lpfc_sli_release_iocbq_s4()
1309 if (!list_empty(&pring->txq)) in __lpfc_sli_release_iocbq_s4()
1594 lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringtxcmpl_put() argument
1601 list_add_tail(&piocb->list, &pring->txcmplq); in lpfc_sli_ringtxcmpl_put()
1604 if ((unlikely(pring->ringno == LPFC_ELS_RING)) && in lpfc_sli_ringtxcmpl_put()
1628 lpfc_sli_ringtx_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_ringtx_get() argument
1634 list_remove_head((&pring->txq), cmd_iocb, struct lpfc_iocbq, list); in lpfc_sli_ringtx_get()
1653 lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_next_iocb_slot() argument
1655 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_next_iocb_slot()
1656 uint32_t max_cmd_idx = pring->sli.sli3.numCiocb; in lpfc_sli_next_iocb_slot()
1660 if ((pring->sli.sli3.next_cmdidx == pring->sli.sli3.cmdidx) && in lpfc_sli_next_iocb_slot()
1661 (++pring->sli.sli3.next_cmdidx >= max_cmd_idx)) in lpfc_sli_next_iocb_slot()
1662 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_next_iocb_slot()
1664 if (unlikely(pring->sli.sli3.local_getidx == in lpfc_sli_next_iocb_slot()
1665 pring->sli.sli3.next_cmdidx)) { in lpfc_sli_next_iocb_slot()
1667 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_next_iocb_slot()
1669 if (unlikely(pring->sli.sli3.local_getidx >= max_cmd_idx)) { in lpfc_sli_next_iocb_slot()
1673 pring->ringno, in lpfc_sli_next_iocb_slot()
1674 pring->sli.sli3.local_getidx, in lpfc_sli_next_iocb_slot()
1690 if (pring->sli.sli3.local_getidx == pring->sli.sli3.next_cmdidx) in lpfc_sli_next_iocb_slot()
1694 return lpfc_cmd_iocb(phba, pring); in lpfc_sli_next_iocb_slot()
1787 lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_submit_iocb() argument
1797 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_submit_iocb()
1810 pring->stats.iocb_cmd++; in lpfc_sli_submit_iocb()
1818 lpfc_sli_ringtxcmpl_put(phba, pring, nextiocb); in lpfc_sli_submit_iocb()
1826 pring->sli.sli3.cmdidx = pring->sli.sli3.next_cmdidx; in lpfc_sli_submit_iocb()
1827 writel(pring->sli.sli3.cmdidx, &phba->host_gp[pring->ringno].cmdPutInx); in lpfc_sli_submit_iocb()
1843 lpfc_sli_update_full_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_update_full_ring() argument
1845 int ringno = pring->ringno; in lpfc_sli_update_full_ring()
1847 pring->flag |= LPFC_CALL_RING_AVAILABLE; in lpfc_sli_update_full_ring()
1858 pring->stats.iocb_cmd_full++; in lpfc_sli_update_full_ring()
1871 lpfc_sli_update_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_update_ring() argument
1873 int ringno = pring->ringno; in lpfc_sli_update_ring()
1895 lpfc_sli_resume_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_resume_iocb() argument
1911 (!list_empty(&pring->txq)) && in lpfc_sli_resume_iocb()
1912 (pring->ringno != LPFC_FCP_RING || in lpfc_sli_resume_iocb()
1915 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && in lpfc_sli_resume_iocb()
1916 (nextiocb = lpfc_sli_ringtx_get(phba, pring))) in lpfc_sli_resume_iocb()
1917 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); in lpfc_sli_resume_iocb()
1920 lpfc_sli_update_ring(phba, pring); in lpfc_sli_resume_iocb()
1922 lpfc_sli_update_full_ring(phba, pring); in lpfc_sli_resume_iocb()
2701 struct lpfc_sli_ring *pring, in lpfc_sli_get_buff() argument
2707 return lpfc_sli_ring_taggedbuf_get(phba, pring, tag); in lpfc_sli_get_buff()
2727 lpfc_complete_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_complete_unsol_iocb() argument
2735 lpfc_nvmet_unsol_ls_event(phba, pring, saveq); in lpfc_complete_unsol_iocb()
2742 if (pring->prt[0].profile) { in lpfc_complete_unsol_iocb()
2743 if (pring->prt[0].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2744 (pring->prt[0].lpfc_sli_rcv_unsol_event) (phba, pring, in lpfc_complete_unsol_iocb()
2750 for (i = 0; i < pring->num_mask; i++) { in lpfc_complete_unsol_iocb()
2751 if ((pring->prt[i].rctl == fch_r_ctl) && in lpfc_complete_unsol_iocb()
2752 (pring->prt[i].type == fch_type)) { in lpfc_complete_unsol_iocb()
2753 if (pring->prt[i].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2754 (pring->prt[i].lpfc_sli_rcv_unsol_event) in lpfc_complete_unsol_iocb()
2755 (phba, pring, saveq); in lpfc_complete_unsol_iocb()
2777 lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_process_unsol_iocb() argument
2789 if (pring->lpfc_sli_rcv_async_status) in lpfc_sli_process_unsol_iocb()
2790 pring->lpfc_sli_rcv_async_status(phba, pring, saveq); in lpfc_sli_process_unsol_iocb()
2798 pring->ringno, in lpfc_sli_process_unsol_iocb()
2806 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2812 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2818 dmzbuf = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2828 saveq->context2 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2836 pring->ringno, in lpfc_sli_process_unsol_iocb()
2840 saveq->context3 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2848 pring->ringno, in lpfc_sli_process_unsol_iocb()
2854 iocbq->context2 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2862 ". tag 0x%x\n", pring->ringno, in lpfc_sli_process_unsol_iocb()
2866 iocbq->context3 = lpfc_sli_get_buff(phba, pring, in lpfc_sli_process_unsol_iocb()
2875 pring->ringno, in lpfc_sli_process_unsol_iocb()
2886 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) { in lpfc_sli_process_unsol_iocb()
2896 &pring->iocb_continue_saveq); in lpfc_sli_process_unsol_iocb()
2915 if ((Rctl == 0) && (pring->ringno == LPFC_ELS_RING) && in lpfc_sli_process_unsol_iocb()
2925 if (!lpfc_complete_unsol_iocb(phba, pring, saveq, Rctl, Type)) in lpfc_sli_process_unsol_iocb()
2929 pring->ringno, Rctl, Type); in lpfc_sli_process_unsol_iocb()
2949 struct lpfc_sli_ring *pring, in lpfc_sli_iocbq_lookup() argument
2990 struct lpfc_sli_ring *pring, uint16_t iotag) in lpfc_sli_iocbq_lookup_by_tag() argument
3031 lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_process_sol_iocb() argument
3040 spin_lock_irqsave(&pring->ring_lock, iflag); in lpfc_sli_process_sol_iocb()
3043 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, saveq); in lpfc_sli_process_sol_iocb()
3045 spin_unlock_irqrestore(&pring->ring_lock, iflag); in lpfc_sli_process_sol_iocb()
3056 (pring->ringno == LPFC_ELS_RING) && in lpfc_sli_process_sol_iocb()
3066 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_process_sol_iocb()
3152 if (pring->ringno != LPFC_ELS_RING) { in lpfc_sli_process_sol_iocb()
3161 pring->ringno, in lpfc_sli_process_sol_iocb()
3184 lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_rsp_pointers_error() argument
3186 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_rsp_pointers_error()
3194 pring->ringno, le32_to_cpu(pgp->rspPutInx), in lpfc_sli_rsp_pointers_error()
3195 pring->sli.sli3.numRiocb); in lpfc_sli_rsp_pointers_error()
3278 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_fast_ring_event() argument
3280 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_handle_fast_ring_event()
3293 pring->stats.iocb_event++; in lpfc_sli_handle_fast_ring_event()
3299 portRspMax = pring->sli.sli3.numRiocb; in lpfc_sli_handle_fast_ring_event()
3302 lpfc_sli_rsp_pointers_error(phba, pring); in lpfc_sli_handle_fast_ring_event()
3313 while (pring->sli.sli3.rspidx != portRspPut) { in lpfc_sli_handle_fast_ring_event()
3319 entry = lpfc_resp_iocb(phba, pring); in lpfc_sli_handle_fast_ring_event()
3322 if (++pring->sli.sli3.rspidx >= portRspMax) in lpfc_sli_handle_fast_ring_event()
3323 pring->sli.sli3.rspidx = 0; in lpfc_sli_handle_fast_ring_event()
3332 pring->stats.iocb_rsp++; in lpfc_sli_handle_fast_ring_event()
3352 pring->ringno, in lpfc_sli_handle_fast_ring_event()
3379 cmdiocbq = lpfc_sli_iocbq_lookup(phba, pring, in lpfc_sli_handle_fast_ring_event()
3394 lpfc_sli_process_unsol_iocb(phba, pring, &rspiocbq); in lpfc_sli_handle_fast_ring_event()
3425 writel(pring->sli.sli3.rspidx, in lpfc_sli_handle_fast_ring_event()
3426 &phba->host_gp[pring->ringno].rspGetInx); in lpfc_sli_handle_fast_ring_event()
3428 if (pring->sli.sli3.rspidx == portRspPut) in lpfc_sli_handle_fast_ring_event()
3433 pring->stats.iocb_rsp_full++; in lpfc_sli_handle_fast_ring_event()
3434 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); in lpfc_sli_handle_fast_ring_event()
3438 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { in lpfc_sli_handle_fast_ring_event()
3439 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; in lpfc_sli_handle_fast_ring_event()
3440 pring->stats.iocb_cmd_empty++; in lpfc_sli_handle_fast_ring_event()
3443 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_handle_fast_ring_event()
3444 lpfc_sli_resume_iocb(phba, pring); in lpfc_sli_handle_fast_ring_event()
3446 if ((pring->lpfc_sli_cmd_available)) in lpfc_sli_handle_fast_ring_event()
3447 (pring->lpfc_sli_cmd_available) (phba, pring); in lpfc_sli_handle_fast_ring_event()
3475 lpfc_sli_sp_handle_rspiocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_sp_handle_rspiocb() argument
3490 list_add_tail(&rspiocbp->list, &(pring->iocb_continueq)); in lpfc_sli_sp_handle_rspiocb()
3491 pring->iocb_continueq_cnt++; in lpfc_sli_sp_handle_rspiocb()
3501 saveq = list_get_first(&pring->iocb_continueq, in lpfc_sli_sp_handle_rspiocb()
3504 list_del_init(&pring->iocb_continueq); in lpfc_sli_sp_handle_rspiocb()
3505 pring->iocb_continueq_cnt = 0; in lpfc_sli_sp_handle_rspiocb()
3507 pring->stats.iocb_rsp++; in lpfc_sli_sp_handle_rspiocb()
3530 pring->ringno, in lpfc_sli_sp_handle_rspiocb()
3560 rc = lpfc_sli_process_sol_iocb(phba, pring, saveq); in lpfc_sli_sp_handle_rspiocb()
3566 rc = lpfc_sli_process_unsol_iocb(phba, pring, saveq); in lpfc_sli_sp_handle_rspiocb()
3575 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, in lpfc_sli_sp_handle_rspiocb()
3640 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event() argument
3642 phba->lpfc_sli_handle_slow_ring_event(phba, pring, mask); in lpfc_sli_handle_slow_ring_event()
3658 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event_s3() argument
3668 pgp = &phba->port_gp[pring->ringno]; in lpfc_sli_handle_slow_ring_event_s3()
3670 pring->stats.iocb_event++; in lpfc_sli_handle_slow_ring_event_s3()
3676 portRspMax = pring->sli.sli3.numRiocb; in lpfc_sli_handle_slow_ring_event_s3()
3686 pring->ringno, portRspPut, portRspMax); in lpfc_sli_handle_slow_ring_event_s3()
3698 while (pring->sli.sli3.rspidx != portRspPut) { in lpfc_sli_handle_slow_ring_event_s3()
3712 entry = lpfc_resp_iocb(phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
3726 if (++pring->sli.sli3.rspidx >= portRspMax) in lpfc_sli_handle_slow_ring_event_s3()
3727 pring->sli.sli3.rspidx = 0; in lpfc_sli_handle_slow_ring_event_s3()
3729 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_handle_slow_ring_event_s3()
3737 writel(pring->sli.sli3.rspidx, in lpfc_sli_handle_slow_ring_event_s3()
3738 &phba->host_gp[pring->ringno].rspGetInx); in lpfc_sli_handle_slow_ring_event_s3()
3742 rspiocbp = lpfc_sli_sp_handle_rspiocb(phba, pring, rspiocbp); in lpfc_sli_handle_slow_ring_event_s3()
3750 if (pring->sli.sli3.rspidx == portRspPut) { in lpfc_sli_handle_slow_ring_event_s3()
3757 pring->stats.iocb_rsp_full++; in lpfc_sli_handle_slow_ring_event_s3()
3759 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); in lpfc_sli_handle_slow_ring_event_s3()
3763 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { in lpfc_sli_handle_slow_ring_event_s3()
3764 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; in lpfc_sli_handle_slow_ring_event_s3()
3765 pring->stats.iocb_cmd_empty++; in lpfc_sli_handle_slow_ring_event_s3()
3768 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); in lpfc_sli_handle_slow_ring_event_s3()
3769 lpfc_sli_resume_iocb(phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
3771 if ((pring->lpfc_sli_cmd_available)) in lpfc_sli_handle_slow_ring_event_s3()
3772 (pring->lpfc_sli_cmd_available) (phba, pring); in lpfc_sli_handle_slow_ring_event_s3()
3794 struct lpfc_sli_ring *pring, uint32_t mask) in lpfc_sli_handle_slow_ring_event_s4() argument
3819 lpfc_sli_sp_handle_rspiocb(phba, pring, in lpfc_sli_handle_slow_ring_event_s4()
3845 lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_abort_iocb_ring() argument
3850 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_abort_iocb_ring()
3858 spin_lock_irq(&pring->ring_lock); in lpfc_sli_abort_iocb_ring()
3859 list_splice_init(&pring->txq, &completions); in lpfc_sli_abort_iocb_ring()
3860 pring->txq_cnt = 0; in lpfc_sli_abort_iocb_ring()
3861 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_abort_iocb_ring()
3865 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) in lpfc_sli_abort_iocb_ring()
3866 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_abort_iocb_ring()
3870 list_splice_init(&pring->txq, &completions); in lpfc_sli_abort_iocb_ring()
3871 pring->txq_cnt = 0; in lpfc_sli_abort_iocb_ring()
3874 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) in lpfc_sli_abort_iocb_ring()
3875 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_abort_iocb_ring()
3895 lpfc_sli_abort_wqe_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) in lpfc_sli_abort_wqe_ring() argument
3900 if (pring->ringno == LPFC_ELS_RING) in lpfc_sli_abort_wqe_ring()
3905 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) in lpfc_sli_abort_wqe_ring()
3906 lpfc_sli4_abort_nvme_io(phba, pring, iocb); in lpfc_sli_abort_wqe_ring()
3925 struct lpfc_sli_ring *pring; in lpfc_sli_abort_fcp_rings() local
3931 pring = phba->sli4_hba.fcp_wq[i]->pring; in lpfc_sli_abort_fcp_rings()
3932 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_abort_fcp_rings()
3935 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_sli_abort_fcp_rings()
3936 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_abort_fcp_rings()
3952 struct lpfc_sli_ring *pring; in lpfc_sli_abort_nvme_rings() local
3960 pring = phba->sli4_hba.nvme_wq[i]->pring; in lpfc_sli_abort_nvme_rings()
3961 lpfc_sli_abort_wqe_ring(phba, pring); in lpfc_sli_abort_nvme_rings()
3982 struct lpfc_sli_ring *pring; in lpfc_sli_flush_fcp_rings() local
3994 pring = phba->sli4_hba.fcp_wq[i]->pring; in lpfc_sli_flush_fcp_rings()
3996 spin_lock_irq(&pring->ring_lock); in lpfc_sli_flush_fcp_rings()
3998 list_splice_init(&pring->txq, &txq); in lpfc_sli_flush_fcp_rings()
4000 &pring->txcmplq, list) in lpfc_sli_flush_fcp_rings()
4003 list_splice_init(&pring->txcmplq, &txcmplq); in lpfc_sli_flush_fcp_rings()
4004 pring->txq_cnt = 0; in lpfc_sli_flush_fcp_rings()
4005 pring->txcmplq_cnt = 0; in lpfc_sli_flush_fcp_rings()
4006 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_flush_fcp_rings()
4018 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_sli_flush_fcp_rings()
4022 list_splice_init(&pring->txq, &txq); in lpfc_sli_flush_fcp_rings()
4024 &pring->txcmplq, list) in lpfc_sli_flush_fcp_rings()
4027 list_splice_init(&pring->txcmplq, &txcmplq); in lpfc_sli_flush_fcp_rings()
4028 pring->txq_cnt = 0; in lpfc_sli_flush_fcp_rings()
4029 pring->txcmplq_cnt = 0; in lpfc_sli_flush_fcp_rings()
4055 struct lpfc_sli_ring *pring; in lpfc_sli_flush_nvme_rings() local
4072 pring = phba->sli4_hba.nvme_wq[i]->pring; in lpfc_sli_flush_nvme_rings()
4074 spin_lock_irq(&pring->ring_lock); in lpfc_sli_flush_nvme_rings()
4076 &pring->txcmplq, list) in lpfc_sli_flush_nvme_rings()
4079 list_splice_init(&pring->txcmplq, &txcmplq); in lpfc_sli_flush_nvme_rings()
4080 pring->txcmplq_cnt = 0; in lpfc_sli_flush_nvme_rings()
4081 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_flush_nvme_rings()
4427 struct lpfc_sli_ring *pring; in lpfc_sli_brdreset() local
4467 pring = &psli->sli3_ring[i]; in lpfc_sli_brdreset()
4468 pring->flag = 0; in lpfc_sli_brdreset()
4469 pring->sli.sli3.rspidx = 0; in lpfc_sli_brdreset()
4470 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_brdreset()
4471 pring->sli.sli3.local_getidx = 0; in lpfc_sli_brdreset()
4472 pring->sli.sli3.cmdidx = 0; in lpfc_sli_brdreset()
4473 pring->missbufcnt = 0; in lpfc_sli_brdreset()
8614 __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in __lpfc_sli_ringtx_put() argument
8619 list_add_tail(&piocb->list, &pring->txq); in __lpfc_sli_ringtx_put()
8640 lpfc_sli_next_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_next_iocb() argument
8647 nextiocb = lpfc_sli_ringtx_get(phba, pring); in lpfc_sli_next_iocb()
8684 struct lpfc_sli_ring *pring = &phba->sli.sli3_ring[ring_number]; in __lpfc_sli_issue_iocb_s3() local
8718 if (unlikely(pring->flag & LPFC_STOP_IOCB_EVENT)) in __lpfc_sli_issue_iocb_s3()
8758 } else if (unlikely(pring->ringno == LPFC_FCP_RING && in __lpfc_sli_issue_iocb_s3()
8763 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && in __lpfc_sli_issue_iocb_s3()
8764 (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb))) in __lpfc_sli_issue_iocb_s3()
8765 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); in __lpfc_sli_issue_iocb_s3()
8768 lpfc_sli_update_ring(phba, pring); in __lpfc_sli_issue_iocb_s3()
8770 lpfc_sli_update_full_ring(phba, pring); in __lpfc_sli_issue_iocb_s3()
8778 pring->stats.iocb_cmd_delay++; in __lpfc_sli_issue_iocb_s3()
8783 __lpfc_sli_ringtx_put(phba, pring, piocb); in __lpfc_sli_issue_iocb_s3()
9510 struct lpfc_sli_ring *pring; in __lpfc_sli_issue_iocb_s4() local
9524 pring = wq->pring; in __lpfc_sli_issue_iocb_s4()
9537 if (!list_empty(&pring->txq)) { in __lpfc_sli_issue_iocb_s4()
9540 pring, piocb); in __lpfc_sli_issue_iocb_s4()
9550 pring, in __lpfc_sli_issue_iocb_s4()
9583 lpfc_sli_ringtxcmpl_put(phba, pring, piocb); in __lpfc_sli_issue_iocb_s4()
9668 return phba->sli4_hba.fcp_wq[piocb->hba_wqidx]->pring; in lpfc_sli4_calc_ring()
9673 return phba->sli4_hba.oas_wq->pring; in lpfc_sli4_calc_ring()
9679 return phba->sli4_hba.els_wq->pring; in lpfc_sli4_calc_ring()
9701 struct lpfc_sli_ring *pring; in lpfc_sli_issue_iocb() local
9708 pring = lpfc_sli4_calc_ring(phba, piocb); in lpfc_sli_issue_iocb()
9709 if (unlikely(pring == NULL)) in lpfc_sli_issue_iocb()
9712 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli_issue_iocb()
9714 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli_issue_iocb()
9767 struct lpfc_sli_ring *pring; in lpfc_extra_ring_setup() local
9774 pring = &psli->sli3_ring[LPFC_FCP_RING]; in lpfc_extra_ring_setup()
9775 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
9776 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
9777 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
9778 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
9781 pring = &psli->sli3_ring[LPFC_EXTRA_RING]; in lpfc_extra_ring_setup()
9783 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
9784 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R1XTRA_ENTRIES; in lpfc_extra_ring_setup()
9785 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
9786 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R3XTRA_ENTRIES; in lpfc_extra_ring_setup()
9789 pring->iotag_max = 4096; in lpfc_extra_ring_setup()
9790 pring->num_mask = 1; in lpfc_extra_ring_setup()
9791 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_extra_ring_setup()
9792 pring->prt[0].rctl = phba->cfg_multi_ring_rctl; in lpfc_extra_ring_setup()
9793 pring->prt[0].type = phba->cfg_multi_ring_type; in lpfc_extra_ring_setup()
9794 pring->prt[0].lpfc_sli_rcv_unsol_event = NULL; in lpfc_extra_ring_setup()
9906 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq) in lpfc_sli_async_event_handler() argument
9954 pring->ringno, icmd->un.asyncstat.evt_code, in lpfc_sli_async_event_handler()
9979 struct lpfc_sli_ring *pring; in lpfc_sli4_setup() local
9981 pring = phba->sli4_hba.els_wq->pring; in lpfc_sli4_setup()
9982 pring->num_mask = LPFC_MAX_RING_MASK; in lpfc_sli4_setup()
9983 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_sli4_setup()
9984 pring->prt[0].rctl = FC_RCTL_ELS_REQ; in lpfc_sli4_setup()
9985 pring->prt[0].type = FC_TYPE_ELS; in lpfc_sli4_setup()
9986 pring->prt[0].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
9988 pring->prt[1].profile = 0; /* Mask 1 */ in lpfc_sli4_setup()
9989 pring->prt[1].rctl = FC_RCTL_ELS_REP; in lpfc_sli4_setup()
9990 pring->prt[1].type = FC_TYPE_ELS; in lpfc_sli4_setup()
9991 pring->prt[1].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
9993 pring->prt[2].profile = 0; /* Mask 2 */ in lpfc_sli4_setup()
9995 pring->prt[2].rctl = FC_RCTL_DD_UNSOL_CTL; in lpfc_sli4_setup()
9997 pring->prt[2].type = FC_TYPE_CT; in lpfc_sli4_setup()
9998 pring->prt[2].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10000 pring->prt[3].profile = 0; /* Mask 3 */ in lpfc_sli4_setup()
10002 pring->prt[3].rctl = FC_RCTL_DD_SOL_CTL; in lpfc_sli4_setup()
10004 pring->prt[3].type = FC_TYPE_CT; in lpfc_sli4_setup()
10005 pring->prt[3].lpfc_sli_rcv_unsol_event = in lpfc_sli4_setup()
10026 struct lpfc_sli_ring *pring; in lpfc_sli_setup() local
10036 pring = &psli->sli3_ring[i]; in lpfc_sli_setup()
10040 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R0_ENTRIES; in lpfc_sli_setup()
10041 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R0_ENTRIES; in lpfc_sli_setup()
10042 pring->sli.sli3.numCiocb += in lpfc_sli_setup()
10044 pring->sli.sli3.numRiocb += in lpfc_sli_setup()
10046 pring->sli.sli3.numCiocb += in lpfc_sli_setup()
10048 pring->sli.sli3.numRiocb += in lpfc_sli_setup()
10050 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10053 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10056 pring->iotag_ctr = 0; in lpfc_sli_setup()
10057 pring->iotag_max = in lpfc_sli_setup()
10059 pring->fast_iotag = pring->iotag_max; in lpfc_sli_setup()
10060 pring->num_mask = 0; in lpfc_sli_setup()
10064 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R1_ENTRIES; in lpfc_sli_setup()
10065 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R1_ENTRIES; in lpfc_sli_setup()
10066 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10069 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10072 pring->iotag_max = phba->cfg_hba_queue_depth; in lpfc_sli_setup()
10073 pring->num_mask = 0; in lpfc_sli_setup()
10077 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R2_ENTRIES; in lpfc_sli_setup()
10078 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R2_ENTRIES; in lpfc_sli_setup()
10079 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10082 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? in lpfc_sli_setup()
10085 pring->fast_iotag = 0; in lpfc_sli_setup()
10086 pring->iotag_ctr = 0; in lpfc_sli_setup()
10087 pring->iotag_max = 4096; in lpfc_sli_setup()
10088 pring->lpfc_sli_rcv_async_status = in lpfc_sli_setup()
10090 pring->num_mask = LPFC_MAX_RING_MASK; in lpfc_sli_setup()
10091 pring->prt[0].profile = 0; /* Mask 0 */ in lpfc_sli_setup()
10092 pring->prt[0].rctl = FC_RCTL_ELS_REQ; in lpfc_sli_setup()
10093 pring->prt[0].type = FC_TYPE_ELS; in lpfc_sli_setup()
10094 pring->prt[0].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10096 pring->prt[1].profile = 0; /* Mask 1 */ in lpfc_sli_setup()
10097 pring->prt[1].rctl = FC_RCTL_ELS_REP; in lpfc_sli_setup()
10098 pring->prt[1].type = FC_TYPE_ELS; in lpfc_sli_setup()
10099 pring->prt[1].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10101 pring->prt[2].profile = 0; /* Mask 2 */ in lpfc_sli_setup()
10103 pring->prt[2].rctl = FC_RCTL_DD_UNSOL_CTL; in lpfc_sli_setup()
10105 pring->prt[2].type = FC_TYPE_CT; in lpfc_sli_setup()
10106 pring->prt[2].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10108 pring->prt[3].profile = 0; /* Mask 3 */ in lpfc_sli_setup()
10110 pring->prt[3].rctl = FC_RCTL_DD_SOL_CTL; in lpfc_sli_setup()
10112 pring->prt[3].type = FC_TYPE_CT; in lpfc_sli_setup()
10113 pring->prt[3].lpfc_sli_rcv_unsol_event = in lpfc_sli_setup()
10117 totiocbsize += (pring->sli.sli3.numCiocb * in lpfc_sli_setup()
10118 pring->sli.sli3.sizeCiocb) + in lpfc_sli_setup()
10119 (pring->sli.sli3.numRiocb * pring->sli.sli3.sizeRiocb); in lpfc_sli_setup()
10149 struct lpfc_sli_ring *pring; in lpfc_sli4_queue_init() local
10158 pring = phba->sli4_hba.fcp_wq[i]->pring; in lpfc_sli4_queue_init()
10159 pring->flag = 0; in lpfc_sli4_queue_init()
10160 pring->ringno = LPFC_FCP_RING; in lpfc_sli4_queue_init()
10161 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10162 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10163 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10164 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10167 pring = phba->sli4_hba.nvme_wq[i]->pring; in lpfc_sli4_queue_init()
10168 pring->flag = 0; in lpfc_sli4_queue_init()
10169 pring->ringno = LPFC_FCP_RING; in lpfc_sli4_queue_init()
10170 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10171 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10172 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10173 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10175 pring = phba->sli4_hba.els_wq->pring; in lpfc_sli4_queue_init()
10176 pring->flag = 0; in lpfc_sli4_queue_init()
10177 pring->ringno = LPFC_ELS_RING; in lpfc_sli4_queue_init()
10178 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10179 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10180 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10181 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10184 pring = phba->sli4_hba.nvmels_wq->pring; in lpfc_sli4_queue_init()
10185 pring->flag = 0; in lpfc_sli4_queue_init()
10186 pring->ringno = LPFC_ELS_RING; in lpfc_sli4_queue_init()
10187 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10188 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10189 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10190 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10194 pring = phba->sli4_hba.oas_wq->pring; in lpfc_sli4_queue_init()
10195 pring->flag = 0; in lpfc_sli4_queue_init()
10196 pring->ringno = LPFC_FCP_RING; in lpfc_sli4_queue_init()
10197 INIT_LIST_HEAD(&pring->txq); in lpfc_sli4_queue_init()
10198 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli4_queue_init()
10199 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli4_queue_init()
10200 spin_lock_init(&pring->ring_lock); in lpfc_sli4_queue_init()
10221 struct lpfc_sli_ring *pring; in lpfc_sli_queue_init() local
10230 pring = &psli->sli3_ring[i]; in lpfc_sli_queue_init()
10231 pring->ringno = i; in lpfc_sli_queue_init()
10232 pring->sli.sli3.next_cmdidx = 0; in lpfc_sli_queue_init()
10233 pring->sli.sli3.local_getidx = 0; in lpfc_sli_queue_init()
10234 pring->sli.sli3.cmdidx = 0; in lpfc_sli_queue_init()
10235 INIT_LIST_HEAD(&pring->iocb_continueq); in lpfc_sli_queue_init()
10236 INIT_LIST_HEAD(&pring->iocb_continue_saveq); in lpfc_sli_queue_init()
10237 INIT_LIST_HEAD(&pring->postbufq); in lpfc_sli_queue_init()
10238 pring->flag = 0; in lpfc_sli_queue_init()
10239 INIT_LIST_HEAD(&pring->txq); in lpfc_sli_queue_init()
10240 INIT_LIST_HEAD(&pring->txcmplq); in lpfc_sli_queue_init()
10241 spin_lock_init(&pring->ring_lock); in lpfc_sli_queue_init()
10316 struct lpfc_sli_ring *pring; in lpfc_sli_host_down() local
10333 pring = &psli->sli3_ring[i]; in lpfc_sli_host_down()
10334 prev_pring_flag = pring->flag; in lpfc_sli_host_down()
10336 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_host_down()
10337 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_host_down()
10342 &pring->txq, list) { in lpfc_sli_host_down()
10348 &pring->txcmplq, list) { in lpfc_sli_host_down()
10351 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_host_down()
10353 pring->flag = prev_pring_flag; in lpfc_sli_host_down()
10357 pring = qp->pring; in lpfc_sli_host_down()
10358 if (!pring) in lpfc_sli_host_down()
10360 if (pring == phba->sli4_hba.els_wq->pring) { in lpfc_sli_host_down()
10361 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_host_down()
10365 prev_pring_flag = pring->flag; in lpfc_sli_host_down()
10366 spin_lock_irq(&pring->ring_lock); in lpfc_sli_host_down()
10368 &pring->txq, list) { in lpfc_sli_host_down()
10373 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_host_down()
10375 &pring->txcmplq, list) { in lpfc_sli_host_down()
10378 lpfc_sli_issue_abort_iotag(phba, pring, iocb); in lpfc_sli_host_down()
10380 pring->flag = prev_pring_flag; in lpfc_sli_host_down()
10412 struct lpfc_sli_ring *pring; in lpfc_sli_hba_down() local
10432 pring = &psli->sli3_ring[i]; in lpfc_sli_hba_down()
10434 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_hba_down()
10435 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_hba_down()
10439 list_splice_init(&pring->txq, &completions); in lpfc_sli_hba_down()
10443 pring = qp->pring; in lpfc_sli_hba_down()
10444 if (!pring) in lpfc_sli_hba_down()
10446 spin_lock_irq(&pring->ring_lock); in lpfc_sli_hba_down()
10447 list_splice_init(&pring->txq, &completions); in lpfc_sli_hba_down()
10448 spin_unlock_irq(&pring->ring_lock); in lpfc_sli_hba_down()
10449 if (pring == phba->sli4_hba.els_wq->pring) { in lpfc_sli_hba_down()
10450 pring->flag |= LPFC_DEFERRED_RING_EVENT; in lpfc_sli_hba_down()
10553 lpfc_sli_ringpostbuf_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringpostbuf_put() argument
10559 list_add_tail(&mp->list, &pring->postbufq); in lpfc_sli_ringpostbuf_put()
10560 pring->postbufq_cnt++; in lpfc_sli_ringpostbuf_put()
10606 lpfc_sli_ring_taggedbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ring_taggedbuf_get() argument
10610 struct list_head *slp = &pring->postbufq; in lpfc_sli_ring_taggedbuf_get()
10614 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { in lpfc_sli_ring_taggedbuf_get()
10617 pring->postbufq_cnt--; in lpfc_sli_ring_taggedbuf_get()
10627 pring->ringno, (unsigned long) tag, in lpfc_sli_ring_taggedbuf_get()
10628 slp->next, slp->prev, pring->postbufq_cnt); in lpfc_sli_ring_taggedbuf_get()
10650 lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_ringpostbuf_get() argument
10654 struct list_head *slp = &pring->postbufq; in lpfc_sli_ringpostbuf_get()
10658 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { in lpfc_sli_ringpostbuf_get()
10661 pring->postbufq_cnt--; in lpfc_sli_ringpostbuf_get()
10671 pring->ringno, (unsigned long long)phys, in lpfc_sli_ringpostbuf_get()
10672 slp->next, slp->prev, pring->postbufq_cnt); in lpfc_sli_ringpostbuf_get()
10781 lpfc_sli_abort_iotag_issue(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_abort_iotag_issue() argument
10823 if (pring->ringno == LPFC_ELS_RING) { in lpfc_sli_abort_iotag_issue()
10854 pring = lpfc_sli4_calc_ring(phba, abtsiocbp); in lpfc_sli_abort_iotag_issue()
10855 if (unlikely(pring == NULL)) in lpfc_sli_abort_iotag_issue()
10858 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli_abort_iotag_issue()
10859 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iotag_issue()
10861 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli_abort_iotag_issue()
10863 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iotag_issue()
10892 lpfc_sli_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli_issue_abort_iotag() argument
10912 if (!pring) { in lpfc_sli_issue_abort_iotag()
10925 (pring->ringno == LPFC_ELS_RING)) { in lpfc_sli_issue_abort_iotag()
10934 retval = lpfc_sli_abort_iotag_issue(phba, pring, cmdiocb); in lpfc_sli_issue_abort_iotag()
10958 lpfc_sli4_abort_nvme_io(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, in lpfc_sli4_abort_nvme_io() argument
11057 struct lpfc_sli_ring *pring; in lpfc_sli_hba_iocb_abort() local
11063 pring = &psli->sli3_ring[i]; in lpfc_sli_hba_iocb_abort()
11064 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_hba_iocb_abort()
11069 pring = qp->pring; in lpfc_sli_hba_iocb_abort()
11070 if (!pring) in lpfc_sli_hba_iocb_abort()
11072 lpfc_sli_abort_iocb_ring(phba, pring); in lpfc_sli_hba_iocb_abort()
11230 lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, in lpfc_sli_abort_iocb() argument
11301 ret_val = lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_iocb()
11336 lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, in lpfc_sli_abort_taskmgmt() argument
11424 ret_val = __lpfc_sli_issue_iocb(phba, pring->ringno, in lpfc_sli_abort_taskmgmt()
11579 struct lpfc_sli_ring *pring; in lpfc_sli_issue_iocb_wait() local
11584 pring = lpfc_sli4_calc_ring(phba, piocb); in lpfc_sli_issue_iocb_wait()
11586 pring = &phba->sli.sli3_ring[ring_number]; in lpfc_sli_issue_iocb_wait()
11651 list_for_each_entry(iocb, &pring->txq, list) { in lpfc_sli_issue_iocb_wait()
11654 list_for_each_entry(iocb, &pring->txcmplq, list) { in lpfc_sli_issue_iocb_wait()
12372 struct lpfc_sli_ring *pring; in lpfc_sli_fp_intr_handler() local
12417 pring = &phba->sli.sli3_ring[LPFC_FCP_RING]; in lpfc_sli_fp_intr_handler()
12419 lpfc_sli_handle_fast_ring_event(phba, pring, status); in lpfc_sli_fp_intr_handler()
12743 struct lpfc_sli_ring *pring; in lpfc_sli4_els_wcqe_to_rspiocbq() local
12748 pring = lpfc_phba_elsring(phba); in lpfc_sli4_els_wcqe_to_rspiocbq()
12749 if (unlikely(!pring)) in lpfc_sli4_els_wcqe_to_rspiocbq()
12753 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_els_wcqe_to_rspiocbq()
12754 pring->stats.iocb_event++; in lpfc_sli4_els_wcqe_to_rspiocbq()
12756 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, in lpfc_sli4_els_wcqe_to_rspiocbq()
12759 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_els_wcqe_to_rspiocbq()
12770 lpfc_sli_ringtxcmpl_put(phba, pring, cmdiocbq); in lpfc_sli4_els_wcqe_to_rspiocbq()
12771 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_els_wcqe_to_rspiocbq()
12988 struct lpfc_sli_ring *pring = cq->pring; in lpfc_sli4_sp_handle_els_wcqe() local
13007 if (!list_empty(&pring->txq)) in lpfc_sli4_sp_handle_els_wcqe()
13009 if (!list_empty(&pring->txcmplq)) in lpfc_sli4_sp_handle_els_wcqe()
13407 struct lpfc_sli_ring *pring = cq->pring; in lpfc_sli4_fp_handle_fcp_wcqe() local
13433 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_fp_handle_fcp_wcqe()
13434 pring->stats.iocb_event++; in lpfc_sli4_fp_handle_fcp_wcqe()
13435 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, in lpfc_sli4_fp_handle_fcp_wcqe()
13437 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_fp_handle_fcp_wcqe()
15381 wq->pring = kzalloc(sizeof(struct lpfc_sli_ring), GFP_KERNEL); in lpfc_wq_create()
15382 if (wq->pring == NULL) { in lpfc_wq_create()
16095 kfree(wq->pring); in lpfc_wq_destroy()
16096 wq->pring = NULL; in lpfc_wq_destroy()
17433 phba->sli4_hba.els_wq->pring, in lpfc_sli4_send_seq_to_ulp()
19083 struct lpfc_sli_ring *pring; in lpfc_drain_txq() local
19097 pring = wq->pring; in lpfc_drain_txq()
19102 pring = lpfc_phba_elsring(phba); in lpfc_drain_txq()
19105 if (unlikely(!pring) || list_empty(&pring->txq)) in lpfc_drain_txq()
19108 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_drain_txq()
19109 list_for_each_entry(piocbq, &pring->txq, list) { in lpfc_drain_txq()
19113 if (txq_cnt > pring->txq_max) in lpfc_drain_txq()
19114 pring->txq_max = txq_cnt; in lpfc_drain_txq()
19116 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
19118 while (!list_empty(&pring->txq)) { in lpfc_drain_txq()
19119 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_drain_txq()
19121 piocbq = lpfc_sli_ringtx_get(phba, pring); in lpfc_drain_txq()
19123 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
19131 __lpfc_sli_ringtx_put(phba, pring, piocbq); in lpfc_drain_txq()
19132 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
19149 lpfc_sli_ringtxcmpl_put(phba, pring, piocbq); in lpfc_drain_txq()
19160 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_drain_txq()
19309 struct lpfc_sli_ring *pring; in lpfc_sli4_issue_wqe() local
19315 pring = phba->sli4_hba.nvmels_wq->pring; in lpfc_sli4_issue_wqe()
19316 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19319 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19325 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19332 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19336 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
19337 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19344 pring = phba->sli4_hba.nvme_wq[pwqe->hba_wqidx]->pring; in lpfc_sli4_issue_wqe()
19346 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19352 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19355 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
19356 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19363 pring = phba->sli4_hba.nvme_wq[pwqe->hba_wqidx]->pring; in lpfc_sli4_issue_wqe()
19365 spin_lock_irqsave(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19379 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()
19382 lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); in lpfc_sli4_issue_wqe()
19383 spin_unlock_irqrestore(&pring->ring_lock, iflags); in lpfc_sli4_issue_wqe()