Searched refs:pring (Results 1 - 17 of 17) sorted by relevance

/linux-4.4.14/drivers/scsi/lpfc/
H A Dlpfc_sli.c533 * @pring: Pointer to driver SLI ring object.
541 lpfc_cmd_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_cmd_iocb() argument
543 return (IOCB_t *) (((char *) pring->sli.sli3.cmdringaddr) + lpfc_cmd_iocb()
544 pring->sli.sli3.cmdidx * phba->iocb_cmd_size); lpfc_cmd_iocb()
550 * @pring: Pointer to driver SLI ring object.
558 lpfc_resp_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_resp_iocb() argument
560 return (IOCB_t *) (((char *) pring->sli.sli3.rspringaddr) + lpfc_resp_iocb()
561 pring->sli.sli3.rspidx * phba->iocb_rsp_size); lpfc_resp_iocb()
1004 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; __lpfc_sli_release_iocbq_s4() local
1022 spin_lock_irqsave(&pring->ring_lock, iflag); __lpfc_sli_release_iocbq_s4()
1027 spin_unlock_irqrestore(&pring->ring_lock, iflag); __lpfc_sli_release_iocbq_s4()
1030 if (!list_empty(&pring->txq)) __lpfc_sli_release_iocbq_s4()
1300 * @pring: Pointer to driver SLI ring object.
1310 lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_ringtxcmpl_put() argument
1313 list_add_tail(&piocb->list, &pring->txcmplq); lpfc_sli_ringtxcmpl_put()
1316 if ((unlikely(pring->ringno == LPFC_ELS_RING)) && lpfc_sli_ringtxcmpl_put()
1335 * @pring: Pointer to driver SLI ring object.
1343 lpfc_sli_ringtx_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_ringtx_get() argument
1347 list_remove_head((&pring->txq), cmd_iocb, struct lpfc_iocbq, list); lpfc_sli_ringtx_get()
1354 * @pring: Pointer to driver SLI ring object.
1366 lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_next_iocb_slot() argument
1368 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; lpfc_sli_next_iocb_slot()
1369 uint32_t max_cmd_idx = pring->sli.sli3.numCiocb; lpfc_sli_next_iocb_slot()
1370 if ((pring->sli.sli3.next_cmdidx == pring->sli.sli3.cmdidx) && lpfc_sli_next_iocb_slot()
1371 (++pring->sli.sli3.next_cmdidx >= max_cmd_idx)) lpfc_sli_next_iocb_slot()
1372 pring->sli.sli3.next_cmdidx = 0; lpfc_sli_next_iocb_slot()
1374 if (unlikely(pring->sli.sli3.local_getidx == lpfc_sli_next_iocb_slot()
1375 pring->sli.sli3.next_cmdidx)) { lpfc_sli_next_iocb_slot()
1377 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); lpfc_sli_next_iocb_slot()
1379 if (unlikely(pring->sli.sli3.local_getidx >= max_cmd_idx)) { lpfc_sli_next_iocb_slot()
1383 pring->ringno, lpfc_sli_next_iocb_slot()
1384 pring->sli.sli3.local_getidx, lpfc_sli_next_iocb_slot()
1400 if (pring->sli.sli3.local_getidx == pring->sli.sli3.next_cmdidx) lpfc_sli_next_iocb_slot()
1404 return lpfc_cmd_iocb(phba, pring); lpfc_sli_next_iocb_slot()
1485 * @pring: Pointer to driver SLI ring object.
1497 lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_submit_iocb() argument
1506 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_submit_iocb()
1519 pring->stats.iocb_cmd++; lpfc_sli_submit_iocb()
1527 lpfc_sli_ringtxcmpl_put(phba, pring, nextiocb); lpfc_sli_submit_iocb()
1535 pring->sli.sli3.cmdidx = pring->sli.sli3.next_cmdidx; lpfc_sli_submit_iocb()
1536 writel(pring->sli.sli3.cmdidx, &phba->host_gp[pring->ringno].cmdPutInx); lpfc_sli_submit_iocb()
1542 * @pring: Pointer to driver SLI ring object.
1552 lpfc_sli_update_full_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_update_full_ring() argument
1554 int ringno = pring->ringno; lpfc_sli_update_full_ring()
1556 pring->flag |= LPFC_CALL_RING_AVAILABLE; lpfc_sli_update_full_ring()
1567 pring->stats.iocb_cmd_full++; lpfc_sli_update_full_ring()
1573 * @pring: Pointer to driver SLI ring object.
1580 lpfc_sli_update_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_update_ring() argument
1582 int ringno = pring->ringno; lpfc_sli_update_ring()
1597 * @pring: Pointer to driver SLI ring object.
1604 lpfc_sli_resume_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_resume_iocb() argument
1618 (!list_empty(&pring->txq)) && lpfc_sli_resume_iocb()
1619 (pring->ringno != phba->sli.fcp_ring || lpfc_sli_resume_iocb()
1622 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && lpfc_sli_resume_iocb()
1623 (nextiocb = lpfc_sli_ringtx_get(phba, pring))) lpfc_sli_resume_iocb()
1624 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); lpfc_sli_resume_iocb()
1627 lpfc_sli_update_ring(phba, pring); lpfc_sli_resume_iocb()
1629 lpfc_sli_update_full_ring(phba, pring); lpfc_sli_resume_iocb()
2395 * @pring: Pointer to driver SLI ring object.
2406 struct lpfc_sli_ring *pring, lpfc_sli_get_buff()
2412 return lpfc_sli_ring_taggedbuf_get(phba, pring, tag); lpfc_sli_get_buff()
2422 * @pring: Pointer to driver SLI ring object.
2432 lpfc_complete_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_complete_unsol_iocb() argument
2439 if (pring->prt[0].profile) { lpfc_complete_unsol_iocb()
2440 if (pring->prt[0].lpfc_sli_rcv_unsol_event) lpfc_complete_unsol_iocb()
2441 (pring->prt[0].lpfc_sli_rcv_unsol_event) (phba, pring, lpfc_complete_unsol_iocb()
2447 for (i = 0; i < pring->num_mask; i++) { lpfc_complete_unsol_iocb()
2448 if ((pring->prt[i].rctl == fch_r_ctl) && lpfc_complete_unsol_iocb()
2449 (pring->prt[i].type == fch_type)) { lpfc_complete_unsol_iocb()
2450 if (pring->prt[i].lpfc_sli_rcv_unsol_event) lpfc_complete_unsol_iocb()
2451 (pring->prt[i].lpfc_sli_rcv_unsol_event) lpfc_complete_unsol_iocb()
2452 (phba, pring, saveq); lpfc_complete_unsol_iocb()
2462 * @pring: Pointer to driver SLI ring object.
2474 lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_process_unsol_iocb() argument
2486 if (pring->lpfc_sli_rcv_async_status) lpfc_sli_process_unsol_iocb()
2487 pring->lpfc_sli_rcv_async_status(phba, pring, saveq); lpfc_sli_process_unsol_iocb()
2495 pring->ringno, lpfc_sli_process_unsol_iocb()
2503 dmzbuf = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2509 dmzbuf = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2515 dmzbuf = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2525 saveq->context2 = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2533 pring->ringno, lpfc_sli_process_unsol_iocb()
2537 saveq->context3 = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2545 pring->ringno, lpfc_sli_process_unsol_iocb()
2551 iocbq->context2 = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2559 ". tag 0x%x\n", pring->ringno, lpfc_sli_process_unsol_iocb()
2563 iocbq->context3 = lpfc_sli_get_buff(phba, pring, lpfc_sli_process_unsol_iocb()
2572 pring->ringno, lpfc_sli_process_unsol_iocb()
2583 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) { lpfc_sli_process_unsol_iocb()
2593 &pring->iocb_continue_saveq); lpfc_sli_process_unsol_iocb()
2612 if ((Rctl == 0) && (pring->ringno == LPFC_ELS_RING) && lpfc_sli_process_unsol_iocb()
2622 if (!lpfc_complete_unsol_iocb(phba, pring, saveq, Rctl, Type)) lpfc_sli_process_unsol_iocb()
2626 pring->ringno, Rctl, Type); lpfc_sli_process_unsol_iocb()
2634 * @pring: Pointer to driver SLI ring object.
2645 struct lpfc_sli_ring *pring, lpfc_sli_iocbq_lookup()
2673 * @pring: Pointer to driver SLI ring object.
2684 struct lpfc_sli_ring *pring, uint16_t iotag) lpfc_sli_iocbq_lookup_by_tag()
2706 * @pring: Pointer to driver SLI ring object.
2721 lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_process_sol_iocb() argument
2730 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, saveq); lpfc_sli_process_sol_iocb()
2740 (pring->ringno == LPFC_ELS_RING) && lpfc_sli_process_sol_iocb()
2750 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_process_sol_iocb()
2836 if (pring->ringno != LPFC_ELS_RING) { lpfc_sli_process_sol_iocb()
2845 pring->ringno, lpfc_sli_process_sol_iocb()
2860 * @pring: Pointer to driver SLI ring object.
2868 lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_rsp_pointers_error() argument
2870 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; lpfc_sli_rsp_pointers_error()
2878 pring->ringno, le32_to_cpu(pgp->rspPutInx), lpfc_sli_rsp_pointers_error()
2879 pring->sli.sli3.numRiocb); lpfc_sli_rsp_pointers_error()
2946 * @pring: Pointer to driver SLI ring object.
2962 struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_fast_ring_event()
2964 struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; lpfc_sli_handle_fast_ring_event()
2977 pring->stats.iocb_event++; lpfc_sli_handle_fast_ring_event()
2983 portRspMax = pring->sli.sli3.numRiocb; lpfc_sli_handle_fast_ring_event()
2986 lpfc_sli_rsp_pointers_error(phba, pring); lpfc_sli_handle_fast_ring_event()
2997 while (pring->sli.sli3.rspidx != portRspPut) { lpfc_sli_handle_fast_ring_event()
3003 entry = lpfc_resp_iocb(phba, pring); lpfc_sli_handle_fast_ring_event()
3006 if (++pring->sli.sli3.rspidx >= portRspMax) lpfc_sli_handle_fast_ring_event()
3007 pring->sli.sli3.rspidx = 0; lpfc_sli_handle_fast_ring_event()
3016 pring->stats.iocb_rsp++; lpfc_sli_handle_fast_ring_event()
3036 pring->ringno, lpfc_sli_handle_fast_ring_event()
3063 cmdiocbq = lpfc_sli_iocbq_lookup(phba, pring, lpfc_sli_handle_fast_ring_event()
3078 lpfc_sli_process_unsol_iocb(phba, pring, &rspiocbq); lpfc_sli_handle_fast_ring_event()
3109 writel(pring->sli.sli3.rspidx, lpfc_sli_handle_fast_ring_event()
3110 &phba->host_gp[pring->ringno].rspGetInx); lpfc_sli_handle_fast_ring_event()
3112 if (pring->sli.sli3.rspidx == portRspPut) lpfc_sli_handle_fast_ring_event()
3117 pring->stats.iocb_rsp_full++; lpfc_sli_handle_fast_ring_event()
3118 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); lpfc_sli_handle_fast_ring_event()
3122 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { lpfc_sli_handle_fast_ring_event()
3123 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; lpfc_sli_handle_fast_ring_event()
3124 pring->stats.iocb_cmd_empty++; lpfc_sli_handle_fast_ring_event()
3127 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); lpfc_sli_handle_fast_ring_event()
3128 lpfc_sli_resume_iocb(phba, pring); lpfc_sli_handle_fast_ring_event()
3130 if ((pring->lpfc_sli_cmd_available)) lpfc_sli_handle_fast_ring_event()
3131 (pring->lpfc_sli_cmd_available) (phba, pring); lpfc_sli_handle_fast_ring_event()
3143 * @pring: Pointer to driver SLI ring object.
3159 lpfc_sli_sp_handle_rspiocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_sp_handle_rspiocb() argument
3174 list_add_tail(&rspiocbp->list, &(pring->iocb_continueq)); lpfc_sli_sp_handle_rspiocb()
3175 pring->iocb_continueq_cnt++; lpfc_sli_sp_handle_rspiocb()
3185 saveq = list_get_first(&pring->iocb_continueq, lpfc_sli_sp_handle_rspiocb()
3188 list_del_init(&pring->iocb_continueq); lpfc_sli_sp_handle_rspiocb()
3189 pring->iocb_continueq_cnt = 0; lpfc_sli_sp_handle_rspiocb()
3191 pring->stats.iocb_rsp++; lpfc_sli_sp_handle_rspiocb()
3214 pring->ringno, lpfc_sli_sp_handle_rspiocb()
3244 rc = lpfc_sli_process_sol_iocb(phba, pring, saveq); lpfc_sli_sp_handle_rspiocb()
3250 rc = lpfc_sli_process_unsol_iocb(phba, pring, saveq); lpfc_sli_sp_handle_rspiocb()
3259 cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, lpfc_sli_sp_handle_rspiocb()
3316 * @pring: Pointer to driver SLI ring object.
3324 struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event()
3326 phba->lpfc_sli_handle_slow_ring_event(phba, pring, mask); lpfc_sli_handle_slow_ring_event()
3332 * @pring: Pointer to driver SLI ring object.
3342 struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event_s3()
3352 pgp = &phba->port_gp[pring->ringno]; lpfc_sli_handle_slow_ring_event_s3()
3354 pring->stats.iocb_event++; lpfc_sli_handle_slow_ring_event_s3()
3360 portRspMax = pring->sli.sli3.numRiocb; lpfc_sli_handle_slow_ring_event_s3()
3370 pring->ringno, portRspPut, portRspMax); lpfc_sli_handle_slow_ring_event_s3()
3382 while (pring->sli.sli3.rspidx != portRspPut) { lpfc_sli_handle_slow_ring_event_s3()
3396 entry = lpfc_resp_iocb(phba, pring); lpfc_sli_handle_slow_ring_event_s3()
3410 if (++pring->sli.sli3.rspidx >= portRspMax) lpfc_sli_handle_slow_ring_event_s3()
3411 pring->sli.sli3.rspidx = 0; lpfc_sli_handle_slow_ring_event_s3()
3413 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_handle_slow_ring_event_s3()
3421 writel(pring->sli.sli3.rspidx, lpfc_sli_handle_slow_ring_event_s3()
3422 &phba->host_gp[pring->ringno].rspGetInx); lpfc_sli_handle_slow_ring_event_s3()
3426 rspiocbp = lpfc_sli_sp_handle_rspiocb(phba, pring, rspiocbp); lpfc_sli_handle_slow_ring_event_s3()
3434 if (pring->sli.sli3.rspidx == portRspPut) { lpfc_sli_handle_slow_ring_event_s3()
3437 } /* while (pring->sli.sli3.rspidx != portRspPut) */ lpfc_sli_handle_slow_ring_event_s3()
3441 pring->stats.iocb_rsp_full++; lpfc_sli_handle_slow_ring_event_s3()
3443 status = ((CA_R0ATT | CA_R0RE_RSP) << (pring->ringno * 4)); lpfc_sli_handle_slow_ring_event_s3()
3447 if ((mask & HA_R0CE_RSP) && (pring->flag & LPFC_CALL_RING_AVAILABLE)) { lpfc_sli_handle_slow_ring_event_s3()
3448 pring->flag &= ~LPFC_CALL_RING_AVAILABLE; lpfc_sli_handle_slow_ring_event_s3()
3449 pring->stats.iocb_cmd_empty++; lpfc_sli_handle_slow_ring_event_s3()
3452 pring->sli.sli3.local_getidx = le32_to_cpu(pgp->cmdGetInx); lpfc_sli_handle_slow_ring_event_s3()
3453 lpfc_sli_resume_iocb(phba, pring); lpfc_sli_handle_slow_ring_event_s3()
3455 if ((pring->lpfc_sli_cmd_available)) lpfc_sli_handle_slow_ring_event_s3()
3456 (pring->lpfc_sli_cmd_available) (phba, pring); lpfc_sli_handle_slow_ring_event_s3()
3467 * @pring: Pointer to driver SLI ring object.
3478 struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event_s4()
3503 lpfc_sli_sp_handle_rspiocb(phba, pring, lpfc_sli_handle_slow_ring_event_s4()
3521 * @pring: Pointer to driver SLI ring object.
3529 lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) lpfc_sli_abort_iocb_ring() argument
3534 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_abort_iocb_ring()
3542 spin_lock_irq(&pring->ring_lock); lpfc_sli_abort_iocb_ring()
3543 list_splice_init(&pring->txq, &completions); lpfc_sli_abort_iocb_ring()
3544 pring->txq_cnt = 0; lpfc_sli_abort_iocb_ring()
3545 spin_unlock_irq(&pring->ring_lock); lpfc_sli_abort_iocb_ring()
3549 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) lpfc_sli_abort_iocb_ring()
3550 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_abort_iocb_ring()
3554 list_splice_init(&pring->txq, &completions); lpfc_sli_abort_iocb_ring()
3555 pring->txq_cnt = 0; lpfc_sli_abort_iocb_ring()
3558 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) lpfc_sli_abort_iocb_ring()
3559 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_abort_iocb_ring()
3571 * @pring: Pointer to driver SLI ring object.
3582 struct lpfc_sli_ring *pring; lpfc_sli_abort_fcp_rings() local
3588 pring = &psli->ring[i + MAX_SLI3_CONFIGURED_RINGS]; lpfc_sli_abort_fcp_rings()
3589 lpfc_sli_abort_iocb_ring(phba, pring); lpfc_sli_abort_fcp_rings()
3592 pring = &psli->ring[psli->fcp_ring]; lpfc_sli_abort_fcp_rings()
3593 lpfc_sli_abort_iocb_ring(phba, pring); lpfc_sli_abort_fcp_rings()
3614 struct lpfc_sli_ring *pring; lpfc_sli_flush_fcp_rings() local
3625 pring = &psli->ring[i + MAX_SLI3_CONFIGURED_RINGS]; lpfc_sli_flush_fcp_rings()
3627 spin_lock_irq(&pring->ring_lock); lpfc_sli_flush_fcp_rings()
3629 list_splice_init(&pring->txq, &txq); lpfc_sli_flush_fcp_rings()
3631 list_splice_init(&pring->txcmplq, &txcmplq); lpfc_sli_flush_fcp_rings()
3632 pring->txq_cnt = 0; lpfc_sli_flush_fcp_rings()
3633 pring->txcmplq_cnt = 0; lpfc_sli_flush_fcp_rings()
3634 spin_unlock_irq(&pring->ring_lock); lpfc_sli_flush_fcp_rings()
3646 pring = &psli->ring[psli->fcp_ring]; lpfc_sli_flush_fcp_rings()
3650 list_splice_init(&pring->txq, &txq); lpfc_sli_flush_fcp_rings()
3652 list_splice_init(&pring->txcmplq, &txcmplq); lpfc_sli_flush_fcp_rings()
3653 pring->txq_cnt = 0; lpfc_sli_flush_fcp_rings()
3654 pring->txcmplq_cnt = 0; lpfc_sli_flush_fcp_rings()
4001 struct lpfc_sli_ring *pring; lpfc_sli_brdreset() local
4038 pring = &psli->ring[i]; lpfc_sli_brdreset()
4039 pring->flag = 0; lpfc_sli_brdreset()
4040 pring->sli.sli3.rspidx = 0; lpfc_sli_brdreset()
4041 pring->sli.sli3.next_cmdidx = 0; lpfc_sli_brdreset()
4042 pring->sli.sli3.local_getidx = 0; lpfc_sli_brdreset()
4043 pring->sli.sli3.cmdidx = 0; lpfc_sli_brdreset()
4044 pring->missbufcnt = 0; lpfc_sli_brdreset()
6104 struct lpfc_sli_ring *pring; lpfc_sli4_repost_els_sgl_list() local
6111 pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli4_repost_els_sgl_list()
6113 spin_lock(&pring->ring_lock); lpfc_sli4_repost_els_sgl_list()
6115 spin_unlock(&pring->ring_lock); lpfc_sli4_repost_els_sgl_list()
6217 spin_lock(&pring->ring_lock); lpfc_sli4_repost_els_sgl_list()
6220 spin_unlock(&pring->ring_lock); lpfc_sli4_repost_els_sgl_list()
7853 * @pring: Pointer to driver SLI ring object.
7861 __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, __lpfc_sli_ringtx_put() argument
7865 list_add_tail(&piocb->list, &pring->txq); __lpfc_sli_ringtx_put()
7871 * @pring: Pointer to driver SLI ring object.
7886 lpfc_sli_next_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_next_iocb() argument
7891 nextiocb = lpfc_sli_ringtx_get(phba, pring); lpfc_sli_next_iocb()
7928 struct lpfc_sli_ring *pring = &phba->sli.ring[ring_number]; __lpfc_sli_issue_iocb_s3() local
7960 if (unlikely(pring->flag & LPFC_STOP_IOCB_EVENT)) __lpfc_sli_issue_iocb_s3()
8000 } else if (unlikely(pring->ringno == phba->sli.fcp_ring && __lpfc_sli_issue_iocb_s3()
8005 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && __lpfc_sli_issue_iocb_s3()
8006 (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb))) __lpfc_sli_issue_iocb_s3()
8007 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); __lpfc_sli_issue_iocb_s3()
8010 lpfc_sli_update_ring(phba, pring); __lpfc_sli_issue_iocb_s3()
8012 lpfc_sli_update_full_ring(phba, pring); __lpfc_sli_issue_iocb_s3()
8020 pring->stats.iocb_cmd_delay++; __lpfc_sli_issue_iocb_s3()
8025 __lpfc_sli_ringtx_put(phba, pring, piocb); __lpfc_sli_issue_iocb_s3()
8643 struct lpfc_sli_ring *pring = &phba->sli.ring[ring_number]; __lpfc_sli_issue_iocb_s4() local
8650 if (!list_empty(&pring->txq)) { __lpfc_sli_issue_iocb_s4()
8653 pring, piocb); __lpfc_sli_issue_iocb_s4()
8663 pring, __lpfc_sli_issue_iocb_s4()
8709 lpfc_sli_ringtxcmpl_put(phba, pring, piocb); __lpfc_sli_issue_iocb_s4()
8811 * @pring: Pointer to driver SLI ring object.
8826 struct lpfc_sli_ring *pring; lpfc_sli_issue_iocb() local
8838 pring = &phba->sli.ring[ring_number]; lpfc_sli_issue_iocb()
8839 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_sli_issue_iocb()
8841 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_sli_issue_iocb()
8894 struct lpfc_sli_ring *pring; lpfc_extra_ring_setup() local
8901 pring = &psli->ring[psli->fcp_ring]; lpfc_extra_ring_setup()
8902 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R1XTRA_ENTRIES; lpfc_extra_ring_setup()
8903 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R1XTRA_ENTRIES; lpfc_extra_ring_setup()
8904 pring->sli.sli3.numCiocb -= SLI2_IOCB_CMD_R3XTRA_ENTRIES; lpfc_extra_ring_setup()
8905 pring->sli.sli3.numRiocb -= SLI2_IOCB_RSP_R3XTRA_ENTRIES; lpfc_extra_ring_setup()
8908 pring = &psli->ring[psli->extra_ring]; lpfc_extra_ring_setup()
8910 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R1XTRA_ENTRIES; lpfc_extra_ring_setup()
8911 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R1XTRA_ENTRIES; lpfc_extra_ring_setup()
8912 pring->sli.sli3.numCiocb += SLI2_IOCB_CMD_R3XTRA_ENTRIES; lpfc_extra_ring_setup()
8913 pring->sli.sli3.numRiocb += SLI2_IOCB_RSP_R3XTRA_ENTRIES; lpfc_extra_ring_setup()
8916 pring->iotag_max = 4096; lpfc_extra_ring_setup()
8917 pring->num_mask = 1; lpfc_extra_ring_setup()
8918 pring->prt[0].profile = 0; /* Mask 0 */ lpfc_extra_ring_setup()
8919 pring->prt[0].rctl = phba->cfg_multi_ring_rctl; lpfc_extra_ring_setup()
8920 pring->prt[0].type = phba->cfg_multi_ring_type; lpfc_extra_ring_setup()
8921 pring->prt[0].lpfc_sli_rcv_unsol_event = NULL; lpfc_extra_ring_setup()
9021 * @pring: Pointer to driver SLI ring object.
9033 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq) lpfc_sli_async_event_handler()
9081 pring->ringno, icmd->un.asyncstat.evt_code, lpfc_sli_async_event_handler()
9108 struct lpfc_sli_ring *pring; lpfc_sli_setup() local
9123 pring = &psli->ring[i]; lpfc_sli_setup()
9127 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R0_ENTRIES; lpfc_sli_setup()
9128 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R0_ENTRIES; lpfc_sli_setup()
9129 pring->sli.sli3.numCiocb += lpfc_sli_setup()
9131 pring->sli.sli3.numRiocb += lpfc_sli_setup()
9133 pring->sli.sli3.numCiocb += lpfc_sli_setup()
9135 pring->sli.sli3.numRiocb += lpfc_sli_setup()
9137 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9140 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9143 pring->iotag_ctr = 0; lpfc_sli_setup()
9144 pring->iotag_max = lpfc_sli_setup()
9146 pring->fast_iotag = pring->iotag_max; lpfc_sli_setup()
9147 pring->num_mask = 0; lpfc_sli_setup()
9151 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R1_ENTRIES; lpfc_sli_setup()
9152 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R1_ENTRIES; lpfc_sli_setup()
9153 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9156 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9159 pring->iotag_max = phba->cfg_hba_queue_depth; lpfc_sli_setup()
9160 pring->num_mask = 0; lpfc_sli_setup()
9164 pring->sli.sli3.numCiocb = SLI2_IOCB_CMD_R2_ENTRIES; lpfc_sli_setup()
9165 pring->sli.sli3.numRiocb = SLI2_IOCB_RSP_R2_ENTRIES; lpfc_sli_setup()
9166 pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9169 pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? lpfc_sli_setup()
9172 pring->fast_iotag = 0; lpfc_sli_setup()
9173 pring->iotag_ctr = 0; lpfc_sli_setup()
9174 pring->iotag_max = 4096; lpfc_sli_setup()
9175 pring->lpfc_sli_rcv_async_status = lpfc_sli_setup()
9177 pring->num_mask = LPFC_MAX_RING_MASK; lpfc_sli_setup()
9178 pring->prt[0].profile = 0; /* Mask 0 */ lpfc_sli_setup()
9179 pring->prt[0].rctl = FC_RCTL_ELS_REQ; lpfc_sli_setup()
9180 pring->prt[0].type = FC_TYPE_ELS; lpfc_sli_setup()
9181 pring->prt[0].lpfc_sli_rcv_unsol_event = lpfc_sli_setup()
9183 pring->prt[1].profile = 0; /* Mask 1 */ lpfc_sli_setup()
9184 pring->prt[1].rctl = FC_RCTL_ELS_REP; lpfc_sli_setup()
9185 pring->prt[1].type = FC_TYPE_ELS; lpfc_sli_setup()
9186 pring->prt[1].lpfc_sli_rcv_unsol_event = lpfc_sli_setup()
9188 pring->prt[2].profile = 0; /* Mask 2 */ lpfc_sli_setup()
9190 pring->prt[2].rctl = FC_RCTL_DD_UNSOL_CTL; lpfc_sli_setup()
9192 pring->prt[2].type = FC_TYPE_CT; lpfc_sli_setup()
9193 pring->prt[2].lpfc_sli_rcv_unsol_event = lpfc_sli_setup()
9195 pring->prt[3].profile = 0; /* Mask 3 */ lpfc_sli_setup()
9197 pring->prt[3].rctl = FC_RCTL_DD_SOL_CTL; lpfc_sli_setup()
9199 pring->prt[3].type = FC_TYPE_CT; lpfc_sli_setup()
9200 pring->prt[3].lpfc_sli_rcv_unsol_event = lpfc_sli_setup()
9204 totiocbsize += (pring->sli.sli3.numCiocb * lpfc_sli_setup()
9205 pring->sli.sli3.sizeCiocb) + lpfc_sli_setup()
9206 (pring->sli.sli3.numRiocb * pring->sli.sli3.sizeRiocb); lpfc_sli_setup()
9236 struct lpfc_sli_ring *pring; lpfc_sli_queue_setup() local
9245 pring = &psli->ring[i]; lpfc_sli_queue_setup()
9246 pring->ringno = i; lpfc_sli_queue_setup()
9247 pring->sli.sli3.next_cmdidx = 0; lpfc_sli_queue_setup()
9248 pring->sli.sli3.local_getidx = 0; lpfc_sli_queue_setup()
9249 pring->sli.sli3.cmdidx = 0; lpfc_sli_queue_setup()
9250 pring->flag = 0; lpfc_sli_queue_setup()
9251 INIT_LIST_HEAD(&pring->txq); lpfc_sli_queue_setup()
9252 INIT_LIST_HEAD(&pring->txcmplq); lpfc_sli_queue_setup()
9253 INIT_LIST_HEAD(&pring->iocb_continueq); lpfc_sli_queue_setup()
9254 INIT_LIST_HEAD(&pring->iocb_continue_saveq); lpfc_sli_queue_setup()
9255 INIT_LIST_HEAD(&pring->postbufq); lpfc_sli_queue_setup()
9256 spin_lock_init(&pring->ring_lock); lpfc_sli_queue_setup()
9331 struct lpfc_sli_ring *pring; lpfc_sli_host_down() local
9341 pring = &psli->ring[i]; lpfc_sli_host_down()
9342 prev_pring_flag = pring->flag; lpfc_sli_host_down()
9344 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_host_down()
9345 pring->flag |= LPFC_DEFERRED_RING_EVENT; lpfc_sli_host_down()
9353 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_sli_host_down()
9360 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, lpfc_sli_host_down()
9364 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_host_down()
9367 pring->flag = prev_pring_flag; lpfc_sli_host_down()
9398 struct lpfc_sli_ring *pring; lpfc_sli_hba_down() local
9412 pring = &psli->ring[i]; lpfc_sli_hba_down()
9414 if (pring->ringno == LPFC_ELS_RING) { lpfc_sli_hba_down()
9415 pring->flag |= LPFC_DEFERRED_RING_EVENT; lpfc_sli_hba_down()
9424 list_splice_init(&pring->txq, &completions); lpfc_sli_hba_down()
9515 * @pring: Pointer to driver SLI ring object.
9523 lpfc_sli_ringpostbuf_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_ringpostbuf_put() argument
9529 list_add_tail(&mp->list, &pring->postbufq); lpfc_sli_ringpostbuf_put()
9530 pring->postbufq_cnt++; lpfc_sli_ringpostbuf_put()
9563 * @pring: Pointer to driver SLI ring object.
9566 * Buffers posted using CMD_QUE_XRI64_CX iocb are in pring->postbufq
9569 * This function searches the pring->postbufq list using the tag
9576 lpfc_sli_ring_taggedbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_ring_taggedbuf_get() argument
9580 struct list_head *slp = &pring->postbufq; lpfc_sli_ring_taggedbuf_get()
9584 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { lpfc_sli_ring_taggedbuf_get()
9587 pring->postbufq_cnt--; lpfc_sli_ring_taggedbuf_get()
9597 pring->ringno, (unsigned long) tag, lpfc_sli_ring_taggedbuf_get()
9598 slp->next, slp->prev, pring->postbufq_cnt); lpfc_sli_ring_taggedbuf_get()
9606 * @pring: Pointer to driver SLI ring object.
9620 lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_ringpostbuf_get() argument
9624 struct list_head *slp = &pring->postbufq; lpfc_sli_ringpostbuf_get()
9628 list_for_each_entry_safe(mp, next_mp, &pring->postbufq, list) { lpfc_sli_ringpostbuf_get()
9631 pring->postbufq_cnt--; lpfc_sli_ringpostbuf_get()
9641 pring->ringno, (unsigned long long)phys, lpfc_sli_ringpostbuf_get()
9642 slp->next, slp->prev, pring->postbufq_cnt); lpfc_sli_ringpostbuf_get()
9734 * @pring: Pointer to driver SLI ring object.
9744 lpfc_sli_abort_iotag_issue(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_abort_iotag_issue() argument
9811 lpfc_sli_calc_ring(phba, pring->ringno, abtsiocbp); lpfc_sli_abort_iotag_issue()
9814 pring = &phba->sli.ring[ring_number]; lpfc_sli_abort_iotag_issue()
9816 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_sli_abort_iotag_issue()
9817 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, lpfc_sli_abort_iotag_issue()
9819 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_sli_abort_iotag_issue()
9821 retval = __lpfc_sli_issue_iocb(phba, pring->ringno, lpfc_sli_abort_iotag_issue()
9839 * @pring: Pointer to driver SLI ring object.
9850 lpfc_sli_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_sli_issue_abort_iotag() argument
9873 (pring->ringno == LPFC_ELS_RING)) { lpfc_sli_issue_abort_iotag()
9882 retval = lpfc_sli_abort_iotag_issue(phba, pring, cmdiocb); lpfc_sli_issue_abort_iotag()
9903 struct lpfc_sli_ring *pring; lpfc_sli_hba_iocb_abort() local
9907 pring = &psli->ring[i]; lpfc_sli_hba_iocb_abort()
9908 lpfc_sli_abort_iocb_ring(phba, pring); lpfc_sli_hba_iocb_abort()
10044 * @pring: Pointer to driver SLI ring object.
10063 lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, lpfc_sli_abort_iocb() argument
10122 ret_val = lpfc_sli_issue_iocb(phba, pring->ringno, lpfc_sli_abort_iocb()
10137 * @pring: Pointer to driver SLI ring object.
10157 lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, lpfc_sli_abort_taskmgmt() argument
10246 ret_val = __lpfc_sli_issue_iocb(phba, pring->ringno, lpfc_sli_abort_taskmgmt()
10354 * @pring: Pointer to sli ring.
10401 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli_issue_iocb_wait() local
10469 list_for_each_entry(iocb, &pring->txq, list) { lpfc_sli_issue_iocb_wait()
10472 list_for_each_entry(iocb, &pring->txcmplq, list) { lpfc_sli_issue_iocb_wait()
11570 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli4_els_wcqe_to_rspiocbq() local
11576 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_sli4_els_wcqe_to_rspiocbq()
11577 pring->stats.iocb_event++; lpfc_sli4_els_wcqe_to_rspiocbq()
11579 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, lpfc_sli4_els_wcqe_to_rspiocbq()
11581 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_sli4_els_wcqe_to_rspiocbq()
11796 struct lpfc_sli_ring *pring = cq->pring; lpfc_sli4_sp_handle_els_wcqe() local
11804 if (!list_empty(&pring->txq)) lpfc_sli4_sp_handle_els_wcqe()
11806 if (!list_empty(&pring->txcmplq)) lpfc_sli4_sp_handle_els_wcqe()
12140 struct lpfc_sli_ring *pring = cq->pring; lpfc_sli4_fp_handle_fcp_wcqe() local
12168 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_sli4_fp_handle_fcp_wcqe()
12169 pring->stats.iocb_event++; lpfc_sli4_fp_handle_fcp_wcqe()
12170 cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, lpfc_sli4_fp_handle_fcp_wcqe()
12172 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_sli4_fp_handle_fcp_wcqe()
16966 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_drain_txq() local
16974 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_drain_txq()
16975 list_for_each_entry(piocbq, &pring->txq, list) { lpfc_drain_txq()
16979 if (txq_cnt > pring->txq_max) lpfc_drain_txq()
16980 pring->txq_max = txq_cnt; lpfc_drain_txq()
16982 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_drain_txq()
16984 while (!list_empty(&pring->txq)) { lpfc_drain_txq()
16985 spin_lock_irqsave(&pring->ring_lock, iflags); lpfc_drain_txq()
16987 piocbq = lpfc_sli_ringtx_get(phba, pring); lpfc_drain_txq()
16989 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_drain_txq()
16997 __lpfc_sli_ringtx_put(phba, pring, piocbq); lpfc_drain_txq()
16998 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_drain_txq()
17015 lpfc_sli_ringtxcmpl_put(phba, pring, piocbq); lpfc_drain_txq()
17026 spin_unlock_irqrestore(&pring->ring_lock, iflags); lpfc_drain_txq()
2405 lpfc_sli_get_buff(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint32_t tag) lpfc_sli_get_buff() argument
2644 lpfc_sli_iocbq_lookup(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, struct lpfc_iocbq *prspiocb) lpfc_sli_iocbq_lookup() argument
2683 lpfc_sli_iocbq_lookup_by_tag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint16_t iotag) lpfc_sli_iocbq_lookup_by_tag() argument
2961 lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_fast_ring_event() argument
3323 lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event() argument
3341 lpfc_sli_handle_slow_ring_event_s3(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event_s3() argument
3477 lpfc_sli_handle_slow_ring_event_s4(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, uint32_t mask) lpfc_sli_handle_slow_ring_event_s4() argument
9032 lpfc_sli_async_event_handler(struct lpfc_hba * phba, struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq) lpfc_sli_async_event_handler() argument
H A Dlpfc_mbox.c947 struct lpfc_sli_ring *pring; lpfc_config_pcb_setup() local
957 pring = &psli->ring[i]; lpfc_config_pcb_setup()
959 pring->sli.sli3.sizeCiocb = lpfc_config_pcb_setup()
962 pring->sli.sli3.sizeRiocb = lpfc_config_pcb_setup()
967 if ((pring->sli.sli3.numCiocb == 0) || lpfc_config_pcb_setup()
968 (pring->sli.sli3.numRiocb == 0)) { lpfc_config_pcb_setup()
975 pring->sli.sli3.cmdringaddr = NULL; lpfc_config_pcb_setup()
976 pring->sli.sli3.rspringaddr = NULL; lpfc_config_pcb_setup()
980 pring->sli.sli3.cmdringaddr = (void *)&phba->IOCBs[iocbCnt]; lpfc_config_pcb_setup()
981 pcbp->rdsc[i].cmdEntries = pring->sli.sli3.numCiocb; lpfc_config_pcb_setup()
988 iocbCnt += pring->sli.sli3.numCiocb; lpfc_config_pcb_setup()
991 pring->sli.sli3.rspringaddr = (void *) &phba->IOCBs[iocbCnt]; lpfc_config_pcb_setup()
993 pcbp->rdsc[i].rspEntries = pring->sli.sli3.numRiocb; lpfc_config_pcb_setup()
999 iocbCnt += pring->sli.sli3.numRiocb; lpfc_config_pcb_setup()
1210 struct lpfc_sli_ring *pring; lpfc_config_ring() local
1220 pring = &psli->ring[ring]; lpfc_config_ring()
1221 mb->un.varCfgRing.numMask = pring->num_mask; lpfc_config_ring()
1226 if (pring->prt[0].profile) { lpfc_config_ring()
1227 mb->un.varCfgRing.profile = pring->prt[0].profile; lpfc_config_ring()
1232 for (i = 0; i < pring->num_mask; i++) { lpfc_config_ring()
1233 mb->un.varCfgRing.rrRegs[i].rval = pring->prt[i].rctl; lpfc_config_ring()
1238 mb->un.varCfgRing.rrRegs[i].tval = pring->prt[i].type; lpfc_config_ring()
H A Dlpfc_bsg.c895 * @pring:
902 lpfc_bsg_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_bsg_ct_unsol_event() argument
941 dmabuf = lpfc_sli_ringpostbuf_get(phba, pring, dma_addr); lpfc_bsg_ct_unsol_event()
949 lpfc_sli_ringpostbuf_put(phba, pring, dmabuf); lpfc_bsg_ct_unsol_event()
1024 pring, dma_addr); lpfc_bsg_ct_unsol_event()
1046 lpfc_sli_ringpostbuf_put(phba, pring, lpfc_bsg_ct_unsol_event()
1067 pring, lpfc_bsg_ct_unsol_event()
1075 pring, lpfc_bsg_ct_unsol_event()
1685 struct lpfc_sli_ring *pring; lpfc_bsg_diag_mode_enter() local
1692 pring = &psli->ring[LPFC_FCP_RING]; lpfc_bsg_diag_mode_enter()
1693 if (!pring) lpfc_bsg_diag_mode_enter()
1713 while (!list_empty(&pring->txcmplq)) { lpfc_bsg_diag_mode_enter()
2845 struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING]; lpfcdiag_loop_post_rxbufs() local
2933 lpfc_sli_ringpostbuf_put(phba, pring, mp[0]); lpfcdiag_loop_post_rxbufs()
2935 lpfc_sli_ringpostbuf_put(phba, pring, mp[1]); lpfcdiag_loop_post_rxbufs()
5286 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_bsg_timeout() local
5327 list_for_each_entry_safe(check_iocb, next_iocb, &pring->txq, lpfc_bsg_timeout()
5335 lpfc_sli_issue_abort_iotag(phba, pring, cmdiocb); lpfc_bsg_timeout()
5364 list_for_each_entry_safe(check_iocb, next_iocb, &pring->txq, lpfc_bsg_timeout()
5372 lpfc_sli_issue_abort_iotag(phba, pring, cmdiocb); lpfc_bsg_timeout()
H A Dlpfc_init.c885 struct lpfc_sli_ring *pring; lpfc_hba_free_post_buf() local
894 pring = &psli->ring[LPFC_ELS_RING]; lpfc_hba_free_post_buf()
896 list_splice_init(&pring->postbufq, &buflist); lpfc_hba_free_post_buf()
908 pring->postbufq_cnt -= count; lpfc_hba_free_post_buf()
927 struct lpfc_sli_ring *pring; lpfc_hba_clean_txcmplq() local
932 pring = &psli->ring[i]; lpfc_hba_clean_txcmplq()
934 spin_lock_irq(&pring->ring_lock); lpfc_hba_clean_txcmplq()
940 list_splice_init(&pring->txcmplq, &completions); lpfc_hba_clean_txcmplq()
941 pring->txcmplq_cnt = 0; lpfc_hba_clean_txcmplq()
944 spin_unlock_irq(&pring->ring_lock); lpfc_hba_clean_txcmplq()
951 lpfc_sli_abort_iocb_ring(phba, pring); lpfc_hba_clean_txcmplq()
994 struct lpfc_sli_ring *pring; lpfc_hba_down_post_s4() local
998 pring = &psli->ring[LPFC_ELS_RING]; lpfc_hba_down_post_s4()
1016 spin_lock(&pring->ring_lock); lpfc_hba_down_post_s4()
1019 spin_unlock(&pring->ring_lock); lpfc_hba_down_post_s4()
2276 * @pring: pointer to a IOCB ring.
2286 lpfc_post_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, int cnt) lpfc_post_buffer() argument
2292 cnt += pring->missbufcnt; lpfc_post_buffer()
2299 pring->missbufcnt = cnt; lpfc_post_buffer()
2312 pring->missbufcnt = cnt; lpfc_post_buffer()
2328 pring->missbufcnt = cnt; lpfc_post_buffer()
2353 if (lpfc_sli_issue_iocb(phba, pring->ringno, iocb, 0) == lpfc_post_buffer()
2364 pring->missbufcnt = cnt; lpfc_post_buffer()
2367 lpfc_sli_ringpostbuf_put(phba, pring, mp1); lpfc_post_buffer()
2369 lpfc_sli_ringpostbuf_put(phba, pring, mp2); lpfc_post_buffer()
2371 pring->missbufcnt = 0; lpfc_post_buffer()
3099 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli4_xri_sgl_update() local
3140 spin_lock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
3142 spin_unlock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
3152 spin_lock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
3154 spin_unlock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
3167 spin_lock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
3169 spin_unlock(&pring->ring_lock); lpfc_sli4_xri_sgl_update()
5824 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_free_els_sgl_list() local
5828 spin_lock(&pring->ring_lock); lpfc_free_els_sgl_list()
5830 spin_unlock(&pring->ring_lock); lpfc_free_els_sgl_list()
7478 struct lpfc_sli_ring *pring; lpfc_sli4_queue_setup() local
7635 pring = &psli->ring[MAX_SLI3_CONFIGURED_RINGS + fcp_wqidx]; lpfc_sli4_queue_setup()
7636 pring->sli.sli4.wqp = (void *)phba->sli4_hba.fcp_wq[fcp_wqidx]; lpfc_sli4_queue_setup()
7637 phba->sli4_hba.fcp_cq[fcp_wqidx]->pring = pring; lpfc_sli4_queue_setup()
7732 pring = &psli->ring[LPFC_ELS_RING]; lpfc_sli4_queue_setup()
7733 pring->sli.sli4.wqp = (void *)phba->sli4_hba.els_wq; lpfc_sli4_queue_setup()
7734 phba->sli4_hba.els_cq->pring = pring; lpfc_sli4_queue_setup()
11174 phba->sli4_hba.oas_cq->pring = &psli->ring[LPFC_FCP_OAS_RING]; lpfc_fof_queue_setup()
H A Dlpfc_hbadisc.c605 struct lpfc_sli_ring *pring; lpfc_work_done() local
686 pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_work_done()
690 (pring->flag & LPFC_DEFERRED_RING_EVENT) || lpfc_work_done()
692 if (pring->flag & LPFC_STOP_IOCB_EVENT) { lpfc_work_done()
693 pring->flag |= LPFC_DEFERRED_RING_EVENT; lpfc_work_done()
698 pring->flag &= ~LPFC_DEFERRED_RING_EVENT; lpfc_work_done()
699 lpfc_sli_handle_slow_ring_event(phba, pring, lpfc_work_done()
705 (!list_empty(&pring->txq))) lpfc_work_done()
4383 struct lpfc_sli_ring *pring, lpfc_check_sli_ndlp()
4394 if (pring->ringno == LPFC_ELS_RING) { lpfc_check_sli_ndlp()
4406 } else if (pring->ringno == psli->extra_ring) { lpfc_check_sli_ndlp()
4408 } else if (pring->ringno == psli->fcp_ring) { lpfc_check_sli_ndlp()
4417 } else if (pring->ringno == psli->next_ring) { lpfc_check_sli_ndlp()
4432 struct lpfc_sli_ring *pring; lpfc_no_rpi() local
4446 pring = &psli->ring[i]; lpfc_no_rpi()
4449 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, lpfc_no_rpi()
4455 if ((lpfc_check_sli_ndlp(phba, pring, iocb, lpfc_no_rpi()
5196 struct lpfc_sli_ring *pring; lpfc_free_tx() local
5199 pring = &psli->ring[LPFC_ELS_RING]; lpfc_free_tx()
5205 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_free_tx()
5218 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_free_tx()
5225 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_free_tx()
4382 lpfc_check_sli_ndlp(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) lpfc_check_sli_ndlp() argument
H A Dlpfc_nportdisc.c208 struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING]; lpfc_els_abort() local
227 spin_lock(&pring->ring_lock); lpfc_els_abort()
228 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_els_abort()
230 if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) lpfc_els_abort()
234 spin_unlock(&pring->ring_lock); lpfc_els_abort()
241 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_els_abort()
250 spin_lock(&pring->ring_lock); lpfc_els_abort()
252 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_els_abort()
254 if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) { lpfc_els_abort()
261 spin_unlock(&pring->ring_lock); lpfc_els_abort()
H A Dlpfc_els.c1309 struct lpfc_sli_ring *pring; lpfc_els_abort_flogi() local
1319 pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_els_abort_flogi()
1326 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_els_abort_flogi()
1332 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_els_abort_flogi()
6874 struct lpfc_sli_ring *pring; lpfc_els_timeout_handler() local
6886 pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_els_timeout_handler()
6891 spin_lock(&pring->ring_lock); lpfc_els_timeout_handler()
6895 spin_unlock(&pring->ring_lock); lpfc_els_timeout_handler()
6900 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) { lpfc_els_timeout_handler()
6940 spin_unlock(&pring->ring_lock); lpfc_els_timeout_handler()
6951 lpfc_sli_issue_abort_iotag(phba, pring, piocb); lpfc_els_timeout_handler()
6986 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_els_flush_cmd() local
6999 spin_lock(&pring->ring_lock); lpfc_els_flush_cmd()
7001 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) { lpfc_els_flush_cmd()
7010 spin_unlock(&pring->ring_lock); lpfc_els_flush_cmd()
7016 lpfc_sli_issue_abort_iotag(phba, pring, piocb); lpfc_els_flush_cmd()
7026 spin_lock(&pring->ring_lock); lpfc_els_flush_cmd()
7028 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txq, list) { lpfc_els_flush_cmd()
7049 spin_unlock(&pring->ring_lock); lpfc_els_flush_cmd()
7236 * @pring: pointer to a SLI ring.
7248 lpfc_els_unsol_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_els_unsol_buffer() argument
7266 lpfc_post_buffer(phba, pring, 1); lpfc_els_unsol_buffer()
7647 * @pring: pointer to a SLI ring.
7657 lpfc_els_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_els_unsol_event() argument
7678 lpfc_post_buffer(phba, pring, 0); lpfc_els_unsol_event()
7706 elsiocb->context2 = lpfc_sli_ringpostbuf_get(phba, pring, lpfc_els_unsol_event()
7710 lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); lpfc_els_unsol_event()
7724 lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); lpfc_els_unsol_event()
8737 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_fabric_abort_nport() local
8742 if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { lpfc_fabric_abort_nport()
8823 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli4_els_xri_aborted() local
8833 spin_lock(&pring->ring_lock); lpfc_sli4_els_xri_aborted()
8837 spin_unlock(&pring->ring_lock); lpfc_sli4_els_xri_aborted()
8845 if (!(list_empty(&pring->txq))) lpfc_sli4_els_xri_aborted()
8856 spin_lock(&pring->ring_lock); lpfc_sli4_els_xri_aborted()
8859 spin_unlock(&pring->ring_lock); lpfc_sli4_els_xri_aborted()
8864 spin_unlock(&pring->ring_lock); lpfc_sli4_els_xri_aborted()
H A Dlpfc_ct.c90 lpfc_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, lpfc_ct_unsol_event() argument
102 if (lpfc_bsg_ct_unsol_event(phba, pring, piocbq) == 0) lpfc_ct_unsol_event()
113 lpfc_post_buffer(phba, pring, 2); lpfc_ct_unsol_event()
155 mp = lpfc_sli_ringpostbuf_get(phba, pring, lpfc_ct_unsol_event()
161 lpfc_post_buffer(phba, pring, i); lpfc_ct_unsol_event()
H A Dlpfc_debugfs.c456 struct lpfc_sli_ring *pring; lpfc_debugfs_dumpHostSlim_data() local
489 pring = &psli->ring[i]; lpfc_debugfs_dumpHostSlim_data()
493 i, pgpp->cmdGetInx, pring->sli.sli3.numCiocb, lpfc_debugfs_dumpHostSlim_data()
494 pring->sli.sli3.next_cmdidx, lpfc_debugfs_dumpHostSlim_data()
495 pring->sli.sli3.local_getidx, lpfc_debugfs_dumpHostSlim_data()
496 pring->flag, pgpp->rspPutInx, lpfc_debugfs_dumpHostSlim_data()
497 pring->sli.sli3.numRiocb); lpfc_debugfs_dumpHostSlim_data()
H A Dlpfc_sli4.h145 struct lpfc_sli_ring *pring; /* ptr to io ring associated with q */ member in struct:lpfc_queue
H A Dlpfc.h582 (struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
H A Dlpfc_attr.c696 struct lpfc_sli_ring *pring; lpfc_do_offline() local
720 pring = &psli->ring[i]; lpfc_do_offline()
721 while (!list_empty(&pring->txcmplq)) { lpfc_do_offline()
H A Dlpfc_scsi.c559 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; lpfc_sli4_fcp_xri_aborted() local
601 if (!list_empty(&pring->txq)) lpfc_sli4_fcp_xri_aborted()
/linux-4.4.14/drivers/net/wireless/ath/wil6210/
H A Dpmc.c85 /* Allocate pring buffer and descriptors. wil_pmc_alloc()
95 "%s: allocated pring %p => %pad. %zd x %d = total %zd bytes\n", wil_pmc_alloc()
103 wil_err(wil, "%s: ERROR allocating pmc pring\n", __func__); wil_pmc_alloc()
176 wil_err(wil, "%s: exit on error: Releasing pring...\n", __func__); wil_pmc_alloc()
240 wil_dbg_misc(wil, "%s: free pring va %p\n", wil_pmc_free()
/linux-4.4.14/drivers/net/ethernet/mellanox/mlx4/
H A Dmlx4_en.h769 struct mlx4_en_tx_ring **pring,
773 struct mlx4_en_tx_ring **pring);
782 struct mlx4_en_rx_ring **pring,
785 struct mlx4_en_rx_ring **pring,
H A Den_rx.c353 struct mlx4_en_rx_ring **pring, mlx4_en_create_rx_ring()
409 *pring = ring; mlx4_en_create_rx_ring()
419 *pring = NULL; mlx4_en_create_rx_ring()
511 struct mlx4_en_rx_ring **pring, mlx4_en_destroy_rx_ring()
515 struct mlx4_en_rx_ring *ring = *pring; mlx4_en_destroy_rx_ring()
522 *pring = NULL; mlx4_en_destroy_rx_ring()
352 mlx4_en_create_rx_ring(struct mlx4_en_priv *priv, struct mlx4_en_rx_ring **pring, u32 size, u16 stride, int node) mlx4_en_create_rx_ring() argument
510 mlx4_en_destroy_rx_ring(struct mlx4_en_priv *priv, struct mlx4_en_rx_ring **pring, u32 size, u16 stride) mlx4_en_destroy_rx_ring() argument
H A Den_tx.c49 struct mlx4_en_tx_ring **pring, u32 size, mlx4_en_create_tx_ring()
152 *pring = ring; mlx4_en_create_tx_ring()
169 *pring = NULL; mlx4_en_create_tx_ring()
174 struct mlx4_en_tx_ring **pring) mlx4_en_destroy_tx_ring()
177 struct mlx4_en_tx_ring *ring = *pring; mlx4_en_destroy_tx_ring()
192 *pring = NULL; mlx4_en_destroy_tx_ring()
48 mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring **pring, u32 size, u16 stride, int node, int queue_index) mlx4_en_create_tx_ring() argument
173 mlx4_en_destroy_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring **pring) mlx4_en_destroy_tx_ring() argument

Completed in 688 milliseconds