Lines Matching refs:phba

217 lpfc_nvmet_get_ctx_for_xri(struct lpfc_hba *phba, u16 xri)  in lpfc_nvmet_get_ctx_for_xri()  argument
223 spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_get_ctx_for_xri()
224 list_for_each_entry(ctxp, &phba->sli4_hba.t_active_ctx_list, list) { in lpfc_nvmet_get_ctx_for_xri()
231 spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_get_ctx_for_xri()
239 lpfc_nvmet_get_ctx_for_oxid(struct lpfc_hba *phba, u16 oxid, u32 sid) in lpfc_nvmet_get_ctx_for_oxid() argument
245 spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_get_ctx_for_oxid()
246 list_for_each_entry(ctxp, &phba->sli4_hba.t_active_ctx_list, list) { in lpfc_nvmet_get_ctx_for_oxid()
253 spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_get_ctx_for_oxid()
262 lpfc_nvmet_defer_release(struct lpfc_hba *phba, in lpfc_nvmet_defer_release() argument
267 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_defer_release()
275 spin_lock(&phba->sli4_hba.t_active_list_lock); in lpfc_nvmet_defer_release()
277 spin_unlock(&phba->sli4_hba.t_active_list_lock); in lpfc_nvmet_defer_release()
278 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_defer_release()
279 list_add_tail(&ctxp->list, &phba->sli4_hba.lpfc_abts_nvmet_ctx_list); in lpfc_nvmet_defer_release()
280 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_defer_release()
295 __lpfc_nvme_xmt_ls_rsp_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in __lpfc_nvme_xmt_ls_rsp_cmp() argument
307 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in __lpfc_nvme_xmt_ls_rsp_cmp()
313 lpfc_nvmeio_data(phba, "NVMEx LS CMPL: xri x%x stat x%x result x%x\n", in __lpfc_nvme_xmt_ls_rsp_cmp()
316 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in __lpfc_nvme_xmt_ls_rsp_cmp()
323 lpfc_sli_release_iocbq(phba, cmdwqe); in __lpfc_nvme_xmt_ls_rsp_cmp()
325 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in __lpfc_nvme_xmt_ls_rsp_cmp()
343 lpfc_nvmet_xmt_ls_rsp_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_xmt_ls_rsp_cmp() argument
350 if (!phba->targetport) in lpfc_nvmet_xmt_ls_rsp_cmp()
356 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_xmt_ls_rsp_cmp()
370 __lpfc_nvme_xmt_ls_rsp_cmp(phba, cmdwqe, rspwqe); in lpfc_nvmet_xmt_ls_rsp_cmp()
386 lpfc_nvmet_ctxbuf_post(struct lpfc_hba *phba, struct lpfc_nvmet_ctxbuf *ctx_buf) in lpfc_nvmet_ctxbuf_post() argument
399 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_ctxbuf_post()
413 nvmebuf->hrq->rqbp->rqb_free_buffer(phba, in lpfc_nvmet_ctxbuf_post()
418 lpfc_rq_buf_free(phba, &nvmebuf->hbuf); in lpfc_nvmet_ctxbuf_post()
426 spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); in lpfc_nvmet_ctxbuf_post()
427 if (phba->sli4_hba.nvmet_io_wait_cnt) { in lpfc_nvmet_ctxbuf_post()
428 list_remove_head(&phba->sli4_hba.lpfc_nvmet_io_wait_list, in lpfc_nvmet_ctxbuf_post()
431 phba->sli4_hba.nvmet_io_wait_cnt--; in lpfc_nvmet_ctxbuf_post()
432 spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, in lpfc_nvmet_ctxbuf_post()
437 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_ctxbuf_post()
444 ctxp->phba = phba; in lpfc_nvmet_ctxbuf_post()
476 if (!queue_work(phba->wq, &ctx_buf->defer_work)) { in lpfc_nvmet_ctxbuf_post()
478 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_ctxbuf_post()
488 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_ctxbuf_post()
490 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, sid, oxid); in lpfc_nvmet_ctxbuf_post()
494 spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, iflag); in lpfc_nvmet_ctxbuf_post()
500 spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_ctxbuf_post()
502 spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_ctxbuf_post()
504 infop = lpfc_get_ctx_list(phba, cpu, ctxp->idx); in lpfc_nvmet_ctxbuf_post()
514 lpfc_nvmet_ktime(struct lpfc_hba *phba, in lpfc_nvmet_ktime() argument
641 phba->ktime_seg1_total += seg1; in lpfc_nvmet_ktime()
642 if (seg1 < phba->ktime_seg1_min) in lpfc_nvmet_ktime()
643 phba->ktime_seg1_min = seg1; in lpfc_nvmet_ktime()
644 else if (seg1 > phba->ktime_seg1_max) in lpfc_nvmet_ktime()
645 phba->ktime_seg1_max = seg1; in lpfc_nvmet_ktime()
647 phba->ktime_seg2_total += seg2; in lpfc_nvmet_ktime()
648 if (seg2 < phba->ktime_seg2_min) in lpfc_nvmet_ktime()
649 phba->ktime_seg2_min = seg2; in lpfc_nvmet_ktime()
650 else if (seg2 > phba->ktime_seg2_max) in lpfc_nvmet_ktime()
651 phba->ktime_seg2_max = seg2; in lpfc_nvmet_ktime()
653 phba->ktime_seg3_total += seg3; in lpfc_nvmet_ktime()
654 if (seg3 < phba->ktime_seg3_min) in lpfc_nvmet_ktime()
655 phba->ktime_seg3_min = seg3; in lpfc_nvmet_ktime()
656 else if (seg3 > phba->ktime_seg3_max) in lpfc_nvmet_ktime()
657 phba->ktime_seg3_max = seg3; in lpfc_nvmet_ktime()
659 phba->ktime_seg4_total += seg4; in lpfc_nvmet_ktime()
660 if (seg4 < phba->ktime_seg4_min) in lpfc_nvmet_ktime()
661 phba->ktime_seg4_min = seg4; in lpfc_nvmet_ktime()
662 else if (seg4 > phba->ktime_seg4_max) in lpfc_nvmet_ktime()
663 phba->ktime_seg4_max = seg4; in lpfc_nvmet_ktime()
665 phba->ktime_seg5_total += seg5; in lpfc_nvmet_ktime()
666 if (seg5 < phba->ktime_seg5_min) in lpfc_nvmet_ktime()
667 phba->ktime_seg5_min = seg5; in lpfc_nvmet_ktime()
668 else if (seg5 > phba->ktime_seg5_max) in lpfc_nvmet_ktime()
669 phba->ktime_seg5_max = seg5; in lpfc_nvmet_ktime()
671 phba->ktime_data_samples++; in lpfc_nvmet_ktime()
675 phba->ktime_seg6_total += seg6; in lpfc_nvmet_ktime()
676 if (seg6 < phba->ktime_seg6_min) in lpfc_nvmet_ktime()
677 phba->ktime_seg6_min = seg6; in lpfc_nvmet_ktime()
678 else if (seg6 > phba->ktime_seg6_max) in lpfc_nvmet_ktime()
679 phba->ktime_seg6_max = seg6; in lpfc_nvmet_ktime()
681 phba->ktime_seg7_total += seg7; in lpfc_nvmet_ktime()
682 if (seg7 < phba->ktime_seg7_min) in lpfc_nvmet_ktime()
683 phba->ktime_seg7_min = seg7; in lpfc_nvmet_ktime()
684 else if (seg7 > phba->ktime_seg7_max) in lpfc_nvmet_ktime()
685 phba->ktime_seg7_max = seg7; in lpfc_nvmet_ktime()
687 phba->ktime_seg8_total += seg8; in lpfc_nvmet_ktime()
688 if (seg8 < phba->ktime_seg8_min) in lpfc_nvmet_ktime()
689 phba->ktime_seg8_min = seg8; in lpfc_nvmet_ktime()
690 else if (seg8 > phba->ktime_seg8_max) in lpfc_nvmet_ktime()
691 phba->ktime_seg8_max = seg8; in lpfc_nvmet_ktime()
693 phba->ktime_seg9_total += seg9; in lpfc_nvmet_ktime()
694 if (seg9 < phba->ktime_seg9_min) in lpfc_nvmet_ktime()
695 phba->ktime_seg9_min = seg9; in lpfc_nvmet_ktime()
696 else if (seg9 > phba->ktime_seg9_max) in lpfc_nvmet_ktime()
697 phba->ktime_seg9_max = seg9; in lpfc_nvmet_ktime()
699 phba->ktime_seg10_total += seg10; in lpfc_nvmet_ktime()
700 if (seg10 < phba->ktime_seg10_min) in lpfc_nvmet_ktime()
701 phba->ktime_seg10_min = seg10; in lpfc_nvmet_ktime()
702 else if (seg10 > phba->ktime_seg10_max) in lpfc_nvmet_ktime()
703 phba->ktime_seg10_max = seg10; in lpfc_nvmet_ktime()
704 phba->ktime_status_samples++; in lpfc_nvmet_ktime()
719 lpfc_nvmet_xmt_fcp_op_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_xmt_fcp_op_cmp() argument
740 if (phba->targetport) in lpfc_nvmet_xmt_fcp_op_cmp()
741 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_xmt_fcp_op_cmp()
745 lpfc_nvmeio_data(phba, "NVMET FCP CMPL: xri x%x op x%x status x%x\n", in lpfc_nvmet_xmt_fcp_op_cmp()
770 lpfc_printf_log(phba, KERN_INFO, logerr, in lpfc_nvmet_xmt_fcp_op_cmp()
818 lpfc_nvmet_ktime(phba, ctxp); in lpfc_nvmet_xmt_fcp_op_cmp()
833 if (phba->hdwqstat_on & LPFC_CHECK_NVMET_IO) { in lpfc_nvmet_xmt_fcp_op_cmp()
835 this_cpu_inc(phba->sli4_hba.c_stat->cmpl_io); in lpfc_nvmet_xmt_fcp_op_cmp()
837 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_xmt_fcp_op_cmp()
864 void (*xmt_ls_rsp_cmp)(struct lpfc_hba *phba, in __lpfc_nvme_xmt_ls_rsp() argument
868 struct lpfc_hba *phba = axchg->phba; in __lpfc_nvme_xmt_ls_rsp() local
875 if (phba->pport->load_flag & FC_UNLOADING) in __lpfc_nvme_xmt_ls_rsp()
878 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in __lpfc_nvme_xmt_ls_rsp()
882 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in __lpfc_nvme_xmt_ls_rsp()
891 nvmewqeq = lpfc_nvmet_prep_ls_wqe(phba, axchg, ls_rsp->rspdma, in __lpfc_nvme_xmt_ls_rsp()
894 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in __lpfc_nvme_xmt_ls_rsp()
920 lpfc_nvmeio_data(phba, "NVMEx LS RSP: xri x%x wqidx x%x len x%x\n", in __lpfc_nvme_xmt_ls_rsp()
923 rc = lpfc_sli4_issue_wqe(phba, axchg->hdwq, nvmewqeq); in __lpfc_nvme_xmt_ls_rsp()
933 lpfc_in_buf_free(phba, &nvmebuf->dbuf); in __lpfc_nvme_xmt_ls_rsp()
937 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in __lpfc_nvme_xmt_ls_rsp()
947 lpfc_in_buf_free(phba, &nvmebuf->dbuf); in __lpfc_nvme_xmt_ls_rsp()
956 lpfc_nvme_unsol_ls_issue_abort(phba, axchg, axchg->sid, axchg->oxid); in __lpfc_nvme_xmt_ls_rsp()
987 if (axchg->phba->pport->load_flag & FC_UNLOADING) in lpfc_nvmet_xmt_ls_rsp()
1015 struct lpfc_hba *phba = ctxp->phba; in lpfc_nvmet_xmt_fcp_op() local
1025 if (phba->pport->load_flag & FC_UNLOADING) { in lpfc_nvmet_xmt_fcp_op()
1040 ctxp->hdwq = &phba->sli4_hba.hdwq[rsp->hwqid]; in lpfc_nvmet_xmt_fcp_op()
1042 if (phba->hdwqstat_on & LPFC_CHECK_NVMET_IO) { in lpfc_nvmet_xmt_fcp_op()
1044 this_cpu_inc(phba->sli4_hba.c_stat->xmt_io); in lpfc_nvmet_xmt_fcp_op()
1046 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_xmt_fcp_op()
1058 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_fcp_op()
1065 nvmewqeq = lpfc_nvmet_prep_fcp_wqe(phba, ctxp); in lpfc_nvmet_xmt_fcp_op()
1068 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_fcp_op()
1080 lpfc_nvmeio_data(phba, "NVMET FCP CMND: xri x%x op x%x len x%x\n", in lpfc_nvmet_xmt_fcp_op()
1084 rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, nvmewqeq); in lpfc_nvmet_xmt_fcp_op()
1115 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_fcp_op()
1133 if (tport->phba->targetport) in lpfc_nvmet_targetport_delete()
1144 struct lpfc_hba *phba = ctxp->phba; in lpfc_nvmet_xmt_fcp_abort() local
1148 if (phba->pport->load_flag & FC_UNLOADING) in lpfc_nvmet_xmt_fcp_abort()
1152 ctxp->hdwq = &phba->sli4_hba.hdwq[0]; in lpfc_nvmet_xmt_fcp_abort()
1154 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_xmt_fcp_abort()
1158 lpfc_nvmeio_data(phba, "NVMET FCP ABRT: xri x%x flg x%x ste x%x\n", in lpfc_nvmet_xmt_fcp_abort()
1176 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, in lpfc_nvmet_xmt_fcp_abort()
1179 lpfc_nvmet_wqfull_flush(phba, wq, ctxp); in lpfc_nvmet_xmt_fcp_abort()
1189 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, in lpfc_nvmet_xmt_fcp_abort()
1192 lpfc_nvmet_sol_fcp_issue_abort(phba, ctxp, ctxp->sid, in lpfc_nvmet_xmt_fcp_abort()
1203 struct lpfc_hba *phba = ctxp->phba; in lpfc_nvmet_xmt_fcp_release() local
1209 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_xmt_fcp_release()
1215 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_fcp_release()
1223 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_xmt_fcp_release()
1227 lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d abt %d\n", ctxp->oxid, in lpfc_nvmet_xmt_fcp_release()
1236 lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); in lpfc_nvmet_xmt_fcp_release()
1247 struct lpfc_hba *phba = ctxp->phba; in lpfc_nvmet_defer_rcv() local
1251 lpfc_nvmeio_data(phba, "NVMET DEFERRCV: xri x%x sz %d CPU %02x\n", in lpfc_nvmet_defer_rcv()
1255 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_defer_rcv()
1262 tgtp = phba->targetport->private; in lpfc_nvmet_defer_rcv()
1267 nvmebuf->hrq->rqbp->rqb_free_buffer(phba, nvmebuf); in lpfc_nvmet_defer_rcv()
1284 lpfc_nvmet_ls_req_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_ls_req_cmp() argument
1288 __lpfc_nvme_ls_req_cmp(phba, cmdwqe->vport, cmdwqe, wcqe); in lpfc_nvmet_ls_req_cmp()
1311 struct lpfc_hba *phba; in lpfc_nvmet_ls_req() local
1319 phba = lpfc_nvmet->phba; in lpfc_nvmet_ls_req()
1320 if (phba->pport->load_flag & FC_UNLOADING) in lpfc_nvmet_ls_req()
1329 ret = __lpfc_nvme_ls_req(phba->pport, ndlp, pnvme_lsreq, in lpfc_nvmet_ls_req()
1351 struct lpfc_hba *phba; in lpfc_nvmet_ls_abort() local
1355 phba = lpfc_nvmet->phba; in lpfc_nvmet_ls_abort()
1356 if (phba->pport->load_flag & FC_UNLOADING) in lpfc_nvmet_ls_abort()
1361 ret = __lpfc_nvme_ls_abort(phba->pport, ndlp, pnvme_lsreq); in lpfc_nvmet_ls_abort()
1370 struct lpfc_hba *phba = ndlp->phba; in lpfc_nvmet_host_release() local
1373 if (!phba->targetport || !phba->targetport->private) in lpfc_nvmet_host_release()
1376 lpfc_printf_log(phba, KERN_ERR, LOG_NVME, in lpfc_nvmet_host_release()
1381 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_host_release()
1393 struct lpfc_hba *phba; in lpfc_nvmet_discovery_event() local
1397 phba = tgtp->phba; in lpfc_nvmet_discovery_event()
1399 rc = lpfc_issue_els_rscn(phba->pport, 0); in lpfc_nvmet_discovery_event()
1400 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_discovery_event()
1430 __lpfc_nvmet_clean_io_for_cpu(struct lpfc_hba *phba, in __lpfc_nvmet_clean_io_for_cpu() argument
1439 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in __lpfc_nvmet_clean_io_for_cpu()
1441 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in __lpfc_nvmet_clean_io_for_cpu()
1443 spin_lock(&phba->hbalock); in __lpfc_nvmet_clean_io_for_cpu()
1444 __lpfc_clear_active_sglq(phba, ctx_buf->sglq->sli4_lxritag); in __lpfc_nvmet_clean_io_for_cpu()
1445 spin_unlock(&phba->hbalock); in __lpfc_nvmet_clean_io_for_cpu()
1450 spin_lock(&phba->sli4_hba.sgl_list_lock); in __lpfc_nvmet_clean_io_for_cpu()
1452 &phba->sli4_hba.lpfc_nvmet_sgl_list); in __lpfc_nvmet_clean_io_for_cpu()
1453 spin_unlock(&phba->sli4_hba.sgl_list_lock); in __lpfc_nvmet_clean_io_for_cpu()
1455 lpfc_sli_release_iocbq(phba, ctx_buf->iocbq); in __lpfc_nvmet_clean_io_for_cpu()
1462 lpfc_nvmet_cleanup_io_context(struct lpfc_hba *phba) in lpfc_nvmet_cleanup_io_context() argument
1468 infop = phba->sli4_hba.nvmet_ctx_info; in lpfc_nvmet_cleanup_io_context()
1473 for (i = 0; i < phba->cfg_nvmet_mrq; i++) { in lpfc_nvmet_cleanup_io_context()
1475 infop = lpfc_get_ctx_list(phba, j, i); in lpfc_nvmet_cleanup_io_context()
1476 __lpfc_nvmet_clean_io_for_cpu(phba, infop); in lpfc_nvmet_cleanup_io_context()
1479 kfree(phba->sli4_hba.nvmet_ctx_info); in lpfc_nvmet_cleanup_io_context()
1480 phba->sli4_hba.nvmet_ctx_info = NULL; in lpfc_nvmet_cleanup_io_context()
1484 lpfc_nvmet_setup_io_context(struct lpfc_hba *phba) in lpfc_nvmet_setup_io_context() argument
1493 lpfc_printf_log(phba, KERN_INFO, LOG_NVME, in lpfc_nvmet_setup_io_context()
1495 phba->sli4_hba.nvmet_xri_cnt); in lpfc_nvmet_setup_io_context()
1497 phba->sli4_hba.nvmet_ctx_info = kcalloc( in lpfc_nvmet_setup_io_context()
1498 phba->sli4_hba.num_possible_cpu * phba->cfg_nvmet_mrq, in lpfc_nvmet_setup_io_context()
1500 if (!phba->sli4_hba.nvmet_ctx_info) { in lpfc_nvmet_setup_io_context()
1501 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_setup_io_context()
1527 for (j = 0; j < phba->cfg_nvmet_mrq; j++) { in lpfc_nvmet_setup_io_context()
1528 infop = lpfc_get_ctx_list(phba, i, j); in lpfc_nvmet_setup_io_context()
1540 for (j = 0; j < phba->cfg_nvmet_mrq; j++) { in lpfc_nvmet_setup_io_context()
1541 last_infop = lpfc_get_ctx_list(phba, in lpfc_nvmet_setup_io_context()
1544 for (i = phba->sli4_hba.num_possible_cpu - 1; i >= 0; i--) { in lpfc_nvmet_setup_io_context()
1545 infop = lpfc_get_ctx_list(phba, i, j); in lpfc_nvmet_setup_io_context()
1556 for (i = 0; i < phba->sli4_hba.nvmet_xri_cnt; i++) { in lpfc_nvmet_setup_io_context()
1559 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_setup_io_context()
1568 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_setup_io_context()
1576 ctx_buf->iocbq = lpfc_sli_get_iocbq(phba); in lpfc_nvmet_setup_io_context()
1580 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_setup_io_context()
1592 spin_lock(&phba->sli4_hba.sgl_list_lock); in lpfc_nvmet_setup_io_context()
1593 ctx_buf->sglq = __lpfc_sli_get_nvmet_sglq(phba, ctx_buf->iocbq); in lpfc_nvmet_setup_io_context()
1594 spin_unlock(&phba->sli4_hba.sgl_list_lock); in lpfc_nvmet_setup_io_context()
1596 lpfc_sli_release_iocbq(phba, ctx_buf->iocbq); in lpfc_nvmet_setup_io_context()
1599 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_setup_io_context()
1610 infop = lpfc_get_ctx_list(phba, cpu, idx); in lpfc_nvmet_setup_io_context()
1618 if (idx >= phba->cfg_nvmet_mrq) { in lpfc_nvmet_setup_io_context()
1630 for (j = 0; j < phba->cfg_nvmet_mrq; j++) { in lpfc_nvmet_setup_io_context()
1631 infop = lpfc_get_ctx_list(phba, i, j); in lpfc_nvmet_setup_io_context()
1632 lpfc_printf_log(phba, KERN_INFO, LOG_NVME | LOG_INIT, in lpfc_nvmet_setup_io_context()
1643 lpfc_nvmet_create_targetport(struct lpfc_hba *phba) in lpfc_nvmet_create_targetport() argument
1645 struct lpfc_vport *vport = phba->pport; in lpfc_nvmet_create_targetport()
1650 if (phba->targetport) in lpfc_nvmet_create_targetport()
1653 error = lpfc_nvmet_setup_io_context(phba); in lpfc_nvmet_create_targetport()
1666 lpfc_tgttemplate.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; in lpfc_nvmet_create_targetport()
1667 lpfc_tgttemplate.max_hw_queues = phba->cfg_hdw_queue; in lpfc_nvmet_create_targetport()
1672 &phba->pcidev->dev, in lpfc_nvmet_create_targetport()
1673 &phba->targetport); in lpfc_nvmet_create_targetport()
1678 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_create_targetport()
1685 phba->targetport = NULL; in lpfc_nvmet_create_targetport()
1686 phba->nvmet_support = 0; in lpfc_nvmet_create_targetport()
1688 lpfc_nvmet_cleanup_io_context(phba); in lpfc_nvmet_create_targetport()
1692 phba->targetport->private; in lpfc_nvmet_create_targetport()
1693 tgtp->phba = phba; in lpfc_nvmet_create_targetport()
1695 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in lpfc_nvmet_create_targetport()
1699 phba->targetport, tgtp, in lpfc_nvmet_create_targetport()
1744 lpfc_nvmet_update_targetport(struct lpfc_hba *phba) in lpfc_nvmet_update_targetport() argument
1746 struct lpfc_vport *vport = phba->pport; in lpfc_nvmet_update_targetport()
1748 if (!phba->targetport) in lpfc_nvmet_update_targetport()
1753 phba->targetport, vport->fc_myDID); in lpfc_nvmet_update_targetport()
1755 phba->targetport->port_id = vport->fc_myDID; in lpfc_nvmet_update_targetport()
1768 lpfc_sli4_nvmet_xri_aborted(struct lpfc_hba *phba, in lpfc_sli4_nvmet_xri_aborted() argument
1782 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_sli4_nvmet_xri_aborted()
1785 if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME)) in lpfc_sli4_nvmet_xri_aborted()
1788 if (phba->targetport) { in lpfc_sli4_nvmet_xri_aborted()
1789 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_sli4_nvmet_xri_aborted()
1793 spin_lock_irqsave(&phba->sli4_hba.abts_nvmet_buf_list_lock, iflag); in lpfc_sli4_nvmet_xri_aborted()
1795 &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, in lpfc_sli4_nvmet_xri_aborted()
1800 spin_unlock_irqrestore(&phba->sli4_hba.abts_nvmet_buf_list_lock, in lpfc_sli4_nvmet_xri_aborted()
1809 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_sli4_nvmet_xri_aborted()
1811 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_sli4_nvmet_xri_aborted()
1817 rrq_empty = list_empty(&phba->active_rrq_list); in lpfc_sli4_nvmet_xri_aborted()
1818 ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); in lpfc_sli4_nvmet_xri_aborted()
1822 lpfc_set_rrq_active(phba, ndlp, in lpfc_sli4_nvmet_xri_aborted()
1825 lpfc_sli4_abts_err_handler(phba, ndlp, axri); in lpfc_sli4_nvmet_xri_aborted()
1828 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_sli4_nvmet_xri_aborted()
1832 lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); in lpfc_sli4_nvmet_xri_aborted()
1835 lpfc_worker_wake_up(phba); in lpfc_sli4_nvmet_xri_aborted()
1838 spin_unlock_irqrestore(&phba->sli4_hba.abts_nvmet_buf_list_lock, iflag); in lpfc_sli4_nvmet_xri_aborted()
1839 ctxp = lpfc_nvmet_get_ctx_for_xri(phba, xri); in lpfc_sli4_nvmet_xri_aborted()
1845 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_sli4_nvmet_xri_aborted()
1856 lpfc_nvmeio_data(phba, in lpfc_sli4_nvmet_xri_aborted()
1862 nvmet_fc_rcv_fcp_abort(phba->targetport, req); in lpfc_sli4_nvmet_xri_aborted()
1872 struct lpfc_hba *phba = vport->phba; in lpfc_nvmet_rcv_unsol_abort() local
1882 spin_lock_irqsave(&phba->sli4_hba.abts_nvmet_buf_list_lock, iflag); in lpfc_nvmet_rcv_unsol_abort()
1884 &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, in lpfc_nvmet_rcv_unsol_abort()
1891 spin_unlock_irqrestore(&phba->sli4_hba.abts_nvmet_buf_list_lock, in lpfc_nvmet_rcv_unsol_abort()
1897 lpfc_nvmeio_data(phba, in lpfc_nvmet_rcv_unsol_abort()
1901 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_rcv_unsol_abort()
1905 nvmet_fc_rcv_fcp_abort(phba->targetport, rsp); in lpfc_nvmet_rcv_unsol_abort()
1911 spin_unlock_irqrestore(&phba->sli4_hba.abts_nvmet_buf_list_lock, iflag); in lpfc_nvmet_rcv_unsol_abort()
1913 if (phba->sli4_hba.nvmet_io_wait_cnt) { in lpfc_nvmet_rcv_unsol_abort()
1920 spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); in lpfc_nvmet_rcv_unsol_abort()
1924 &phba->sli4_hba.lpfc_nvmet_io_wait_list, in lpfc_nvmet_rcv_unsol_abort()
1933 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_rcv_unsol_abort()
1939 phba->sli4_hba.nvmet_io_wait_cnt--; in lpfc_nvmet_rcv_unsol_abort()
1943 spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, in lpfc_nvmet_rcv_unsol_abort()
1948 nvmebuf->hrq->rqbp->rqb_free_buffer(phba, nvmebuf); in lpfc_nvmet_rcv_unsol_abort()
1956 ctxp = lpfc_nvmet_get_ctx_for_oxid(phba, oxid, sid); in lpfc_nvmet_rcv_unsol_abort()
1964 lpfc_nvmeio_data(phba, in lpfc_nvmet_rcv_unsol_abort()
1968 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_rcv_unsol_abort()
1975 nvmet_fc_rcv_fcp_abort(phba->targetport, in lpfc_nvmet_rcv_unsol_abort()
1980 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_rcv_unsol_abort()
1983 lpfc_nvmet_sol_fcp_issue_abort(phba, ctxp, ctxp->sid, in lpfc_nvmet_rcv_unsol_abort()
1990 lpfc_nvmeio_data(phba, "NVMET ABTS RCV: oxid x%x CPU %02x rjt %d\n", in lpfc_nvmet_rcv_unsol_abort()
1993 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_rcv_unsol_abort()
2003 lpfc_nvmet_wqfull_flush(struct lpfc_hba *phba, struct lpfc_queue *wq, in lpfc_nvmet_wqfull_flush() argument
2032 lpfc_nvmet_xmt_fcp_op_cmp(phba, nvmewqeq, in lpfc_nvmet_wqfull_flush()
2042 lpfc_nvmet_xmt_fcp_op_cmp(phba, nvmewqeq, nvmewqeq); in lpfc_nvmet_wqfull_flush()
2052 lpfc_nvmet_wqfull_process(struct lpfc_hba *phba, in lpfc_nvmet_wqfull_process() argument
2073 rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, nvmewqeq); in lpfc_nvmet_wqfull_process()
2101 lpfc_nvmet_destroy_targetport(struct lpfc_hba *phba) in lpfc_nvmet_destroy_targetport() argument
2109 if (phba->nvmet_support == 0) in lpfc_nvmet_destroy_targetport()
2111 if (phba->targetport) { in lpfc_nvmet_destroy_targetport()
2112 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_destroy_targetport()
2113 for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { in lpfc_nvmet_destroy_targetport()
2114 wq = phba->sli4_hba.hdwq[qidx].io_wq; in lpfc_nvmet_destroy_targetport()
2115 lpfc_nvmet_wqfull_flush(phba, wq, NULL); in lpfc_nvmet_destroy_targetport()
2118 nvmet_fc_unregister_targetport(phba->targetport); in lpfc_nvmet_destroy_targetport()
2121 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_destroy_targetport()
2123 "reached.\n", phba->targetport); in lpfc_nvmet_destroy_targetport()
2124 lpfc_nvmet_cleanup_io_context(phba); in lpfc_nvmet_destroy_targetport()
2126 phba->targetport = NULL; in lpfc_nvmet_destroy_targetport()
2147 lpfc_nvmet_handle_lsreq(struct lpfc_hba *phba, in lpfc_nvmet_handle_lsreq() argument
2151 struct lpfc_nvmet_tgtport *tgtp = phba->targetport->private; in lpfc_nvmet_handle_lsreq()
2162 rc = nvmet_fc_rcv_ls_req(phba->targetport, axchg->ndlp, &axchg->ls_rsp, in lpfc_nvmet_handle_lsreq()
2165 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in lpfc_nvmet_handle_lsreq()
2186 struct lpfc_hba *phba = ctxp->phba; in lpfc_nvmet_process_rcv_fcp_req() local
2194 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_process_rcv_fcp_req()
2199 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_process_rcv_fcp_req()
2201 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, in lpfc_nvmet_process_rcv_fcp_req()
2207 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_process_rcv_fcp_req()
2214 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_process_rcv_fcp_req()
2229 rc = nvmet_fc_rcv_fcp_req(phba->targetport, &ctxp->hdlrctx.fcp_req, in lpfc_nvmet_process_rcv_fcp_req()
2242 lpfc_rq_buf_free(phba, &nvmebuf->hbuf); /* repost */ in lpfc_nvmet_process_rcv_fcp_req()
2248 lpfc_nvmeio_data(phba, "NVMET RCV BUSY: xri x%x sz %d " in lpfc_nvmet_process_rcv_fcp_req()
2265 phba, phba->sli4_hba.nvmet_mrq_hdr[qno], in lpfc_nvmet_process_rcv_fcp_req()
2266 phba->sli4_hba.nvmet_mrq_data[qno], 1, qno); in lpfc_nvmet_process_rcv_fcp_req()
2271 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_process_rcv_fcp_req()
2277 lpfc_nvmeio_data(phba, "NVMET FCP DROP: xri x%x sz %d from %06x\n", in lpfc_nvmet_process_rcv_fcp_req()
2280 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_process_rcv_fcp_req()
2282 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, ctxp->oxid); in lpfc_nvmet_process_rcv_fcp_req()
2298 lpfc_nvmet_replenish_context(struct lpfc_hba *phba, in lpfc_nvmet_replenish_context() argument
2321 for (i = 0; i < phba->sli4_hba.num_possible_cpu; i++) { in lpfc_nvmet_replenish_context()
2370 lpfc_nvmet_unsol_fcp_buffer(struct lpfc_hba *phba, in lpfc_nvmet_unsol_fcp_buffer() argument
2389 if (!nvmebuf || !phba->targetport) { in lpfc_nvmet_unsol_fcp_buffer()
2390 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_buffer()
2393 lpfc_rq_buf_free(phba, &nvmebuf->hbuf); in lpfc_nvmet_unsol_fcp_buffer()
2405 current_infop = lpfc_get_ctx_list(phba, current_cpu, idx); in lpfc_nvmet_unsol_fcp_buffer()
2412 ctx_buf = lpfc_nvmet_replenish_context(phba, current_infop); in lpfc_nvmet_unsol_fcp_buffer()
2421 if (phba->hdwqstat_on & LPFC_CHECK_NVMET_IO) { in lpfc_nvmet_unsol_fcp_buffer()
2422 this_cpu_inc(phba->sli4_hba.c_stat->rcv_io); in lpfc_nvmet_unsol_fcp_buffer()
2424 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_unsol_fcp_buffer()
2431 lpfc_nvmeio_data(phba, "NVMET FCP RCV: xri x%x sz %d CPU %02x\n", in lpfc_nvmet_unsol_fcp_buffer()
2434 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_unsol_fcp_buffer()
2438 spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); in lpfc_nvmet_unsol_fcp_buffer()
2440 &phba->sli4_hba.lpfc_nvmet_io_wait_list); in lpfc_nvmet_unsol_fcp_buffer()
2441 phba->sli4_hba.nvmet_io_wait_cnt++; in lpfc_nvmet_unsol_fcp_buffer()
2442 phba->sli4_hba.nvmet_io_wait_total++; in lpfc_nvmet_unsol_fcp_buffer()
2443 spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, in lpfc_nvmet_unsol_fcp_buffer()
2449 phba, phba->sli4_hba.nvmet_mrq_hdr[qno], in lpfc_nvmet_unsol_fcp_buffer()
2450 phba->sli4_hba.nvmet_mrq_data[qno], 1, qno); in lpfc_nvmet_unsol_fcp_buffer()
2459 spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_unsol_fcp_buffer()
2460 list_add_tail(&ctxp->list, &phba->sli4_hba.t_active_ctx_list); in lpfc_nvmet_unsol_fcp_buffer()
2461 spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); in lpfc_nvmet_unsol_fcp_buffer()
2463 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_buffer()
2469 ctxp->phba = phba; in lpfc_nvmet_unsol_fcp_buffer()
2503 if (!queue_work(phba->wq, &ctx_buf->defer_work)) { in lpfc_nvmet_unsol_fcp_buffer()
2505 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_buffer()
2514 lpfc_nvmet_defer_release(phba, ctxp); in lpfc_nvmet_unsol_fcp_buffer()
2516 lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, sid, oxid); in lpfc_nvmet_unsol_fcp_buffer()
2535 lpfc_nvmet_unsol_fcp_event(struct lpfc_hba *phba, in lpfc_nvmet_unsol_fcp_event() argument
2542 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_event()
2546 if (phba->nvmet_support == 0) { in lpfc_nvmet_unsol_fcp_event()
2547 lpfc_rq_buf_free(phba, &nvmebuf->hbuf); in lpfc_nvmet_unsol_fcp_event()
2550 lpfc_nvmet_unsol_fcp_buffer(phba, idx, nvmebuf, isr_timestamp, cqflag); in lpfc_nvmet_unsol_fcp_event()
2579 lpfc_nvmet_prep_ls_wqe(struct lpfc_hba *phba, in lpfc_nvmet_prep_ls_wqe() argument
2587 if (!lpfc_is_link_up(phba)) { in lpfc_nvmet_prep_ls_wqe()
2588 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_ls_wqe()
2596 nvmewqe = lpfc_sli_get_iocbq(phba); in lpfc_nvmet_prep_ls_wqe()
2598 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_ls_wqe()
2605 ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); in lpfc_nvmet_prep_ls_wqe()
2609 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_ls_wqe()
2645 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_nvmet_prep_ls_wqe()
2680 nvmewqe->vport = phba->pport; in lpfc_nvmet_prep_ls_wqe()
2681 nvmewqe->drvrTimeout = (phba->fc_ratov * 3) + LPFC_DRVR_TIMEOUT; in lpfc_nvmet_prep_ls_wqe()
2685 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, in lpfc_nvmet_prep_ls_wqe()
2696 lpfc_sli_release_iocbq(phba, nvmewqe); in lpfc_nvmet_prep_ls_wqe()
2702 lpfc_nvmet_prep_fcp_wqe(struct lpfc_hba *phba, in lpfc_nvmet_prep_fcp_wqe() argument
2718 if (!lpfc_is_link_up(phba)) { in lpfc_nvmet_prep_fcp_wqe()
2719 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_fcp_wqe()
2726 ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); in lpfc_nvmet_prep_fcp_wqe()
2730 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_fcp_wqe()
2738 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_fcp_wqe()
2742 phba->cfg_nvme_seg_cnt); in lpfc_nvmet_prep_fcp_wqe()
2747 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_prep_fcp_wqe()
2753 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_fcp_wqe()
2771 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_prep_fcp_wqe()
2806 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_nvmet_prep_fcp_wqe()
2883 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_nvmet_prep_fcp_wqe()
2901 if (nsegs == 1 && phba->cfg_enable_pbde) { in lpfc_nvmet_prep_fcp_wqe()
2950 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_nvmet_prep_fcp_wqe()
2988 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, in lpfc_nvmet_prep_fcp_wqe()
2995 nvmewqe->vport = phba->pport; in lpfc_nvmet_prep_fcp_wqe()
2996 nvmewqe->drvrTimeout = (phba->fc_ratov * 3) + LPFC_DRVR_TIMEOUT; in lpfc_nvmet_prep_fcp_wqe()
3045 lpfc_nvmet_sol_fcp_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_sol_fcp_abort_cmp() argument
3058 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_sol_fcp_abort_cmp()
3070 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_sol_fcp_abort_cmp()
3072 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_sol_fcp_abort_cmp()
3079 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_sol_fcp_abort_cmp()
3093 lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); in lpfc_nvmet_sol_fcp_abort_cmp()
3096 lpfc_sli_release_iocbq(phba, cmdwqe); in lpfc_nvmet_sol_fcp_abort_cmp()
3115 lpfc_nvmet_unsol_fcp_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_unsol_fcp_abort_cmp() argument
3130 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_unsol_fcp_abort_cmp()
3137 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_unsol_fcp_abort_cmp()
3144 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_abort_cmp()
3155 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_unsol_fcp_abort_cmp()
3157 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_unsol_fcp_abort_cmp()
3164 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_unsol_fcp_abort_cmp()
3178 lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); in lpfc_nvmet_unsol_fcp_abort_cmp()
3197 lpfc_nvmet_xmt_ls_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, in lpfc_nvmet_xmt_ls_abort_cmp() argument
3208 if (phba->nvmet_support) { in lpfc_nvmet_xmt_ls_abort_cmp()
3209 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_xmt_ls_abort_cmp()
3213 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_xmt_ls_abort_cmp()
3219 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_ls_abort_cmp()
3225 lpfc_sli_release_iocbq(phba, cmdwqe); in lpfc_nvmet_xmt_ls_abort_cmp()
3230 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_xmt_ls_abort_cmp()
3238 lpfc_sli_release_iocbq(phba, cmdwqe); in lpfc_nvmet_xmt_ls_abort_cmp()
3243 lpfc_nvmet_unsol_issue_abort(struct lpfc_hba *phba, in lpfc_nvmet_unsol_issue_abort() argument
3252 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_unsol_issue_abort()
3256 if (phba->nvmet_support && phba->targetport) in lpfc_nvmet_unsol_issue_abort()
3257 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_unsol_issue_abort()
3259 ndlp = lpfc_findnode_did(phba->pport, sid); in lpfc_nvmet_unsol_issue_abort()
3265 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_issue_abort()
3291 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_nvmet_unsol_issue_abort()
3323 abts_wqeq->vport = phba->pport; in lpfc_nvmet_unsol_issue_abort()
3332 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_unsol_issue_abort()
3339 lpfc_nvmet_sol_fcp_issue_abort(struct lpfc_hba *phba, in lpfc_nvmet_sol_fcp_issue_abort() argument
3350 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_sol_fcp_issue_abort()
3356 ndlp = lpfc_findnode_did(phba->pport, sid); in lpfc_nvmet_sol_fcp_issue_abort()
3361 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_sol_fcp_issue_abort()
3373 ctxp->abort_wqeq = lpfc_sli_get_iocbq(phba); in lpfc_nvmet_sol_fcp_issue_abort()
3377 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_sol_fcp_issue_abort()
3391 lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, in lpfc_nvmet_sol_fcp_issue_abort()
3399 spin_lock_irqsave(&phba->hbalock, flags); in lpfc_nvmet_sol_fcp_issue_abort()
3401 if (phba->hba_flag & HBA_IOQ_FLUSH) { in lpfc_nvmet_sol_fcp_issue_abort()
3402 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_nvmet_sol_fcp_issue_abort()
3404 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_sol_fcp_issue_abort()
3407 phba->hba_flag, ctxp->oxid); in lpfc_nvmet_sol_fcp_issue_abort()
3408 lpfc_sli_release_iocbq(phba, abts_wqeq); in lpfc_nvmet_sol_fcp_issue_abort()
3417 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_nvmet_sol_fcp_issue_abort()
3419 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_sol_fcp_issue_abort()
3423 lpfc_sli_release_iocbq(phba, abts_wqeq); in lpfc_nvmet_sol_fcp_issue_abort()
3433 lpfc_sli_prep_abort_xri(phba, abts_wqeq, ctxp->wqeq->sli4_xritag, in lpfc_nvmet_sol_fcp_issue_abort()
3442 abts_wqeq->vport = phba->pport; in lpfc_nvmet_sol_fcp_issue_abort()
3444 ctxp->hdwq = &phba->sli4_hba.hdwq[abts_wqeq->hba_wqidx]; in lpfc_nvmet_sol_fcp_issue_abort()
3446 rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); in lpfc_nvmet_sol_fcp_issue_abort()
3447 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_nvmet_sol_fcp_issue_abort()
3457 lpfc_sli_release_iocbq(phba, abts_wqeq); in lpfc_nvmet_sol_fcp_issue_abort()
3458 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_sol_fcp_issue_abort()
3466 lpfc_nvmet_unsol_fcp_issue_abort(struct lpfc_hba *phba, in lpfc_nvmet_unsol_fcp_issue_abort() argument
3476 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_unsol_fcp_issue_abort()
3483 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_issue_abort()
3491 rc = lpfc_nvmet_unsol_issue_abort(phba, ctxp, sid, xri); in lpfc_nvmet_unsol_fcp_issue_abort()
3495 spin_lock_irqsave(&phba->hbalock, flags); in lpfc_nvmet_unsol_fcp_issue_abort()
3500 ctxp->hdwq = &phba->sli4_hba.hdwq[abts_wqeq->hba_wqidx]; in lpfc_nvmet_unsol_fcp_issue_abort()
3502 rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); in lpfc_nvmet_unsol_fcp_issue_abort()
3503 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_nvmet_unsol_fcp_issue_abort()
3511 spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_unsol_fcp_issue_abort()
3513 spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); in lpfc_nvmet_unsol_fcp_issue_abort()
3520 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvmet_unsol_fcp_issue_abort()
3525 lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); in lpfc_nvmet_unsol_fcp_issue_abort()
3538 lpfc_nvme_unsol_ls_issue_abort(struct lpfc_hba *phba, in lpfc_nvme_unsol_ls_issue_abort() argument
3552 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvme_unsol_ls_issue_abort()
3559 if (phba->nvmet_support && phba->targetport) in lpfc_nvme_unsol_ls_issue_abort()
3560 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvme_unsol_ls_issue_abort()
3564 ctxp->wqeq = lpfc_sli_get_iocbq(phba); in lpfc_nvme_unsol_ls_issue_abort()
3566 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvme_unsol_ls_issue_abort()
3576 if (lpfc_nvmet_unsol_issue_abort(phba, ctxp, sid, xri) == 0) { in lpfc_nvme_unsol_ls_issue_abort()
3581 spin_lock_irqsave(&phba->hbalock, flags); in lpfc_nvme_unsol_ls_issue_abort()
3584 rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); in lpfc_nvme_unsol_ls_issue_abort()
3585 spin_unlock_irqrestore(&phba->hbalock, flags); in lpfc_nvme_unsol_ls_issue_abort()
3596 lpfc_sli_release_iocbq(phba, abts_wqeq); in lpfc_nvme_unsol_ls_issue_abort()
3597 lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, in lpfc_nvme_unsol_ls_issue_abort()
3612 lpfc_nvmet_invalidate_host(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) in lpfc_nvmet_invalidate_host() argument
3617 lpfc_printf_log(phba, KERN_INFO, in lpfc_nvmet_invalidate_host()
3622 tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; in lpfc_nvmet_invalidate_host()
3634 lpfc_printf_log(phba, KERN_INFO, in lpfc_nvmet_invalidate_host()
3643 nvmet_fc_invalidate_host(phba->targetport, ndlp); in lpfc_nvmet_invalidate_host()