Lines Matching refs:ndlp
52 struct lpfc_nodelist *ndlp, uint8_t retry);
152 struct lpfc_nodelist *ndlp, uint32_t did, in lpfc_prep_els_iocb() argument
299 elsiocb->context1 = lpfc_nlp_get(ndlp); in lpfc_prep_els_iocb()
326 elscmd, ndlp->nlp_DID, elsiocb->iotag, in lpfc_prep_els_iocb()
369 struct lpfc_nodelist *ndlp; in lpfc_issue_fabric_reglogin() local
375 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_issue_fabric_reglogin()
376 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_fabric_reglogin()
404 ndlp->nlp_rpi); in lpfc_issue_fabric_reglogin()
415 mbox->context2 = lpfc_nlp_get(ndlp); in lpfc_issue_fabric_reglogin()
429 lpfc_nlp_put(ndlp); in lpfc_issue_fabric_reglogin()
459 struct lpfc_nodelist *ndlp; in lpfc_issue_reg_vfi() local
467 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_issue_reg_vfi()
468 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_reg_vfi()
639 lpfc_cmpl_els_flogi_fabric(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_cmpl_els_flogi_fabric() argument
666 memcpy(&ndlp->nlp_portname, &sp->portName, sizeof(struct lpfc_name)); in lpfc_cmpl_els_flogi_fabric()
667 memcpy(&ndlp->nlp_nodename, &sp->nodeName, sizeof(struct lpfc_name)); in lpfc_cmpl_els_flogi_fabric()
668 ndlp->nlp_class_sup = 0; in lpfc_cmpl_els_flogi_fabric()
670 ndlp->nlp_class_sup |= FC_COS_CLASS1; in lpfc_cmpl_els_flogi_fabric()
672 ndlp->nlp_class_sup |= FC_COS_CLASS2; in lpfc_cmpl_els_flogi_fabric()
674 ndlp->nlp_class_sup |= FC_COS_CLASS3; in lpfc_cmpl_els_flogi_fabric()
676 ndlp->nlp_class_sup |= FC_COS_CLASS4; in lpfc_cmpl_els_flogi_fabric()
677 ndlp->nlp_maxframe = ((sp->cmn.bbRcvSizeMsb & 0x0F) << 8) | in lpfc_cmpl_els_flogi_fabric()
765 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE); in lpfc_cmpl_els_flogi_fabric()
766 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
771 lpfc_nlp_set_state(vport, ndlp, NLP_STE_REG_LOGIN_ISSUE); in lpfc_cmpl_els_flogi_fabric()
774 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
778 ndlp->nlp_type |= NLP_FABRIC; in lpfc_cmpl_els_flogi_fabric()
779 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE); in lpfc_cmpl_els_flogi_fabric()
817 lpfc_cmpl_els_flogi_nport(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_cmpl_els_flogi_nport() argument
877 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi_nport()
879 ndlp = lpfc_findnode_did(vport, PT2PT_RemoteID); in lpfc_cmpl_els_flogi_nport()
880 if (!ndlp) { in lpfc_cmpl_els_flogi_nport()
885 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_cmpl_els_flogi_nport()
886 if (!ndlp) in lpfc_cmpl_els_flogi_nport()
888 lpfc_nlp_init(vport, ndlp, PT2PT_RemoteID); in lpfc_cmpl_els_flogi_nport()
889 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_flogi_nport()
890 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_cmpl_els_flogi_nport()
892 if(!ndlp) in lpfc_cmpl_els_flogi_nport()
896 memcpy(&ndlp->nlp_portname, &sp->portName, in lpfc_cmpl_els_flogi_nport()
898 memcpy(&ndlp->nlp_nodename, &sp->nodeName, in lpfc_cmpl_els_flogi_nport()
901 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_cmpl_els_flogi_nport()
903 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_flogi_nport()
910 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi_nport()
973 struct lpfc_nodelist *ndlp = cmdiocb->context1; in lpfc_cmpl_els_flogi() local
984 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1072 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1105 rc = lpfc_cmpl_els_flogi_fabric(vport, ndlp, sp, irsp); in lpfc_cmpl_els_flogi()
1107 rc = lpfc_cmpl_els_flogi_nport(vport, ndlp, sp); in lpfc_cmpl_els_flogi()
1133 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1160 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1204 lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_flogi() argument
1217 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_flogi()
1218 ndlp->nlp_DID, ELS_CMD_FLOGI); in lpfc_issue_els_flogi()
1311 struct lpfc_nodelist *ndlp; in lpfc_els_abort_flogi() local
1329 ndlp = (struct lpfc_nodelist *)(iocb->context1); in lpfc_els_abort_flogi()
1330 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_els_abort_flogi()
1331 (ndlp->nlp_DID == Fabric_DID)) in lpfc_els_abort_flogi()
1360 struct lpfc_nodelist *ndlp; in lpfc_initial_flogi() local
1366 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_flogi()
1367 if (!ndlp) { in lpfc_initial_flogi()
1369 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_initial_flogi()
1370 if (!ndlp) in lpfc_initial_flogi()
1372 lpfc_nlp_init(vport, ndlp, Fabric_DID); in lpfc_initial_flogi()
1374 ndlp->nlp_type |= NLP_FABRIC; in lpfc_initial_flogi()
1376 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_flogi()
1377 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_flogi()
1379 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_flogi()
1380 if (!ndlp) in lpfc_initial_flogi()
1384 if (lpfc_issue_els_flogi(vport, ndlp, 0)) { in lpfc_initial_flogi()
1388 lpfc_nlp_put(ndlp); in lpfc_initial_flogi()
1414 struct lpfc_nodelist *ndlp; in lpfc_initial_fdisc() local
1417 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_fdisc()
1418 if (!ndlp) { in lpfc_initial_fdisc()
1420 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_initial_fdisc()
1421 if (!ndlp) in lpfc_initial_fdisc()
1423 lpfc_nlp_init(vport, ndlp, Fabric_DID); in lpfc_initial_fdisc()
1425 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_fdisc()
1426 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_fdisc()
1428 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_fdisc()
1429 if (!ndlp) in lpfc_initial_fdisc()
1433 if (lpfc_issue_els_fdisc(vport, ndlp, 0)) { in lpfc_initial_fdisc()
1437 lpfc_nlp_put(ndlp); in lpfc_initial_fdisc()
1507 struct lpfc_nodelist *ndlp) in lpfc_plogi_confirm_nport() argument
1509 struct lpfc_vport *vport = ndlp->vport; in lpfc_plogi_confirm_nport()
1525 if (ndlp->nlp_type & NLP_FABRIC) in lpfc_plogi_confirm_nport()
1526 return ndlp; in lpfc_plogi_confirm_nport()
1536 if (new_ndlp == ndlp && NLP_CHK_NODE_ACT(new_ndlp)) in lpfc_plogi_confirm_nport()
1537 return ndlp; in lpfc_plogi_confirm_nport()
1548 ndlp, ndlp->nlp_DID, new_ndlp); in lpfc_plogi_confirm_nport()
1551 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1557 return ndlp; in lpfc_plogi_confirm_nport()
1564 return ndlp; in lpfc_plogi_confirm_nport()
1566 lpfc_nlp_init(vport, new_ndlp, ndlp->nlp_DID); in lpfc_plogi_confirm_nport()
1568 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1574 return ndlp; in lpfc_plogi_confirm_nport()
1582 return ndlp; in lpfc_plogi_confirm_nport()
1599 new_ndlp->nlp_DID = ndlp->nlp_DID; in lpfc_plogi_confirm_nport()
1600 new_ndlp->nlp_prev_state = ndlp->nlp_prev_state; in lpfc_plogi_confirm_nport()
1603 ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1608 new_ndlp->nlp_flag = ndlp->nlp_flag; in lpfc_plogi_confirm_nport()
1609 ndlp->nlp_flag = keep_nlp_flag; in lpfc_plogi_confirm_nport()
1614 lpfc_nlp_set_state(vport, new_ndlp, ndlp->nlp_state); in lpfc_plogi_confirm_nport()
1617 if (memcmp(&ndlp->nlp_portname, name, sizeof(struct lpfc_name)) == 0) { in lpfc_plogi_confirm_nport()
1626 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1629 if (rdata->pnode == ndlp) { in lpfc_plogi_confirm_nport()
1631 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1632 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1636 new_ndlp->nlp_type = ndlp->nlp_type; in lpfc_plogi_confirm_nport()
1642 if (ndlp->nlp_DID == 0) { in lpfc_plogi_confirm_nport()
1644 NLP_SET_FREE_REQ(ndlp); in lpfc_plogi_confirm_nport()
1649 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1652 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1656 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_plogi_confirm_nport()
1657 lpfc_drop_node(vport, ndlp); in lpfc_plogi_confirm_nport()
1664 lpfc_unreg_rpi(vport, ndlp); in lpfc_plogi_confirm_nport()
1667 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1670 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1677 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_plogi_confirm_nport()
1678 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) in lpfc_plogi_confirm_nport()
1680 lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); in lpfc_plogi_confirm_nport()
1683 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1687 put_rport = ndlp->rport != NULL; in lpfc_plogi_confirm_nport()
1689 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1691 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1753 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_rrq() local
1766 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_rrq()
1767 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || ndlp != rrq->ndlp) { in lpfc_cmpl_els_rrq()
1781 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_rrq()
1793 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_rrq()
1829 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_plogi() local
1842 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_plogi()
1843 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_plogi()
1857 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_plogi()
1858 ndlp->nlp_flag &= ~NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
1866 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_plogi()
1871 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
1882 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
1894 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_plogi()
1900 rc = lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
1907 ndlp = lpfc_plogi_confirm_nport(phba, prsp->virt, ndlp); in lpfc_cmpl_els_plogi()
1908 rc = lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
1957 struct lpfc_nodelist *ndlp; in lpfc_issue_els_plogi() local
1963 ndlp = lpfc_findnode_did(vport, did); in lpfc_issue_els_plogi()
1964 if (ndlp && !NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_plogi()
1965 ndlp = NULL; in lpfc_issue_els_plogi()
1969 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_plogi()
2030 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_prli() local
2036 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_prli()
2038 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_cmpl_els_prli()
2044 ndlp->nlp_DID); in lpfc_cmpl_els_prli()
2049 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_prli()
2066 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_prli()
2072 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2076 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2105 lpfc_issue_els_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_prli() argument
2116 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_prli()
2117 ndlp->nlp_DID, ELS_CMD_PRLI); in lpfc_issue_els_prli()
2150 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_prli()
2155 ndlp->nlp_flag |= NLP_PRLI_SND; in lpfc_issue_els_prli()
2160 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_issue_els_prli()
2309 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_adisc() local
2316 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_adisc()
2321 ndlp->nlp_DID); in lpfc_cmpl_els_adisc()
2327 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2328 ndlp->nlp_flag &= ~(NLP_ADISC_SND | NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2334 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_adisc()
2339 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2350 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2359 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_adisc()
2363 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2367 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2399 lpfc_issue_els_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_adisc() argument
2410 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_adisc()
2411 ndlp->nlp_DID, ELS_CMD_ADISC); in lpfc_issue_els_adisc()
2430 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_adisc()
2435 ndlp->nlp_flag |= NLP_ADISC_SND; in lpfc_issue_els_adisc()
2440 ndlp->nlp_flag &= ~NLP_ADISC_SND; in lpfc_issue_els_adisc()
2464 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo() local
2465 struct lpfc_vport *vport = ndlp->vport; in lpfc_cmpl_els_logo()
2477 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_cmpl_els_logo()
2483 ndlp->nlp_DID); in lpfc_cmpl_els_logo()
2489 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_logo()
2498 if (ndlp->nlp_flag & NLP_TARGET_REMOVE) { in lpfc_cmpl_els_logo()
2502 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_logo()
2518 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2528 lpfc_disc_state_machine(vport, ndlp, cmdiocb, NLP_EVT_CMPL_LOGO); in lpfc_cmpl_els_logo()
2554 if ((ndlp->nlp_type & NLP_FCP_TARGET) && (skip_recovery == 0)) { in lpfc_cmpl_els_logo()
2555 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_cmpl_els_logo()
2557 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_logo()
2563 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2592 lpfc_issue_els_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_logo() argument
2603 if (ndlp->nlp_flag & NLP_LOGO_SND) { in lpfc_issue_els_logo()
2610 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_logo()
2611 ndlp->nlp_DID, ELS_CMD_LOGO); in lpfc_issue_els_logo()
2626 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_logo()
2637 ndlp->nlp_flag |= NLP_ISSUE_LOGO; in lpfc_issue_els_logo()
2639 if (lpfc_unreg_rpi(vport, ndlp)) { in lpfc_issue_els_logo()
2647 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_logo()
2648 ndlp->nlp_flag &= ~NLP_ISSUE_LOGO; in lpfc_issue_els_logo()
2654 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_logo()
2731 struct lpfc_nodelist *ndlp; in lpfc_issue_els_scr() local
2735 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_scr()
2736 if (!ndlp) { in lpfc_issue_els_scr()
2737 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_issue_els_scr()
2738 if (!ndlp) in lpfc_issue_els_scr()
2740 lpfc_nlp_init(vport, ndlp, nportid); in lpfc_issue_els_scr()
2741 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_scr()
2742 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_scr()
2743 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_scr()
2744 if (!ndlp) in lpfc_issue_els_scr()
2748 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_scr()
2749 ndlp->nlp_DID, ELS_CMD_SCR); in lpfc_issue_els_scr()
2755 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
2770 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_scr()
2780 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
2788 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
2824 struct lpfc_nodelist *ndlp; in lpfc_issue_els_farpr() local
2828 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_farpr()
2829 if (!ndlp) { in lpfc_issue_els_farpr()
2830 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_issue_els_farpr()
2831 if (!ndlp) in lpfc_issue_els_farpr()
2833 lpfc_nlp_init(vport, ndlp, nportid); in lpfc_issue_els_farpr()
2834 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_farpr()
2835 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_farpr()
2836 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_farpr()
2837 if (!ndlp) in lpfc_issue_els_farpr()
2841 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_farpr()
2842 ndlp->nlp_DID, ELS_CMD_RNID); in lpfc_issue_els_farpr()
2847 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
2877 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_farpr()
2887 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
2894 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
2970 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) ptr; in lpfc_els_retry_delay() local
2971 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay()
2974 struct lpfc_work_evt *evtp = &ndlp->els_retry_evt; in lpfc_els_retry_delay()
2985 evtp->evt_arg1 = lpfc_nlp_get(ndlp); in lpfc_els_retry_delay()
3005 lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp) in lpfc_els_retry_delay_handler() argument
3007 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay_handler()
3012 cmd = ndlp->nlp_last_elscmd; in lpfc_els_retry_delay_handler()
3013 ndlp->nlp_last_elscmd = 0; in lpfc_els_retry_delay_handler()
3015 if (!(ndlp->nlp_flag & NLP_DELAY_TMO)) { in lpfc_els_retry_delay_handler()
3020 ndlp->nlp_flag &= ~NLP_DELAY_TMO; in lpfc_els_retry_delay_handler()
3027 del_timer_sync(&ndlp->nlp_delayfunc); in lpfc_els_retry_delay_handler()
3028 retry = ndlp->nlp_retry; in lpfc_els_retry_delay_handler()
3029 ndlp->nlp_retry = 0; in lpfc_els_retry_delay_handler()
3033 lpfc_issue_els_flogi(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3036 if (!lpfc_issue_els_plogi(vport, ndlp->nlp_DID, retry)) { in lpfc_els_retry_delay_handler()
3037 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3038 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_retry_delay_handler()
3042 if (!lpfc_issue_els_adisc(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3043 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3044 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry_delay_handler()
3048 if (!lpfc_issue_els_prli(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3049 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3050 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry_delay_handler()
3054 if (!lpfc_issue_els_logo(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3055 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3056 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry_delay_handler()
3061 lpfc_issue_els_fdisc(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3095 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_els_retry() local
3114 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3115 did = ndlp->nlp_DID; in lpfc_els_retry()
3119 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_retry()
3120 if ((!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3127 *(((uint32_t *) irsp) + 7), irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_els_retry()
3138 lpfc_set_rrq_active(phba, ndlp, in lpfc_els_retry()
3373 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && delay) { in lpfc_els_retry()
3375 ndlp->nlp_retry = cmdiocb->retry; in lpfc_els_retry()
3378 mod_timer(&ndlp->nlp_delayfunc, in lpfc_els_retry()
3381 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_els_retry()
3384 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
3386 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
3389 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
3391 ndlp->nlp_last_elscmd = cmd; in lpfc_els_retry()
3397 lpfc_issue_els_flogi(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
3400 lpfc_issue_els_fdisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
3403 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_retry()
3404 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
3405 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
3411 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
3412 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry()
3413 lpfc_issue_els_adisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
3416 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
3417 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry()
3418 lpfc_issue_els_prli(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
3421 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
3422 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry()
3423 lpfc_issue_els_logo(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
3528 struct lpfc_nodelist *ndlp; in lpfc_els_free_iocb() local
3530 ndlp = (struct lpfc_nodelist *)elsiocb->context1; in lpfc_els_free_iocb()
3531 if (ndlp) { in lpfc_els_free_iocb()
3532 if (ndlp->nlp_flag & NLP_DEFER_RM) { in lpfc_els_free_iocb()
3533 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
3538 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_els_free_iocb()
3542 ndlp->nlp_flag &= ~NLP_DEFER_RM; in lpfc_els_free_iocb()
3546 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
3611 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo_acc() local
3618 irsp->ulpStatus, irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_cmpl_els_logo_acc()
3623 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_logo_acc()
3624 ndlp->nlp_rpi); in lpfc_cmpl_els_logo_acc()
3626 if (ndlp->nlp_state == NLP_STE_NPR_NODE) { in lpfc_cmpl_els_logo_acc()
3628 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_logo_acc()
3632 lpfc_unreg_rpi(vport, ndlp); in lpfc_cmpl_els_logo_acc()
3665 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) pmb->context2; in lpfc_mbx_cmpl_dflt_rpi() local
3673 if (ndlp) { in lpfc_mbx_cmpl_dflt_rpi()
3674 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE, in lpfc_mbx_cmpl_dflt_rpi()
3676 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag, in lpfc_mbx_cmpl_dflt_rpi()
3677 atomic_read(&ndlp->kref.refcount), in lpfc_mbx_cmpl_dflt_rpi()
3678 ndlp->nlp_usg_map, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
3679 if (NLP_CHK_NODE_ACT(ndlp)) { in lpfc_mbx_cmpl_dflt_rpi()
3680 lpfc_nlp_put(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
3685 lpfc_nlp_not_used(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
3687 lpfc_drop_node(ndlp->vport, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
3714 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_rsp() local
3715 struct lpfc_vport *vport = ndlp ? ndlp->vport : NULL; in lpfc_cmpl_els_rsp()
3732 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
3737 if (!(ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
3742 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || lpfc_els_chk_latt(vport)) { in lpfc_cmpl_els_rsp()
3751 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
3752 (ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
3753 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
3754 ndlp = NULL; in lpfc_cmpl_els_rsp()
3774 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
3775 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
3778 && (ndlp->nlp_flag & NLP_ACC_REGLOGIN)) { in lpfc_cmpl_els_rsp()
3779 lpfc_unreg_rpi(vport, ndlp); in lpfc_cmpl_els_rsp()
3783 mbox->context2 = lpfc_nlp_get(ndlp); in lpfc_cmpl_els_rsp()
3785 if (ndlp->nlp_flag & NLP_RM_DFLT_RPI) { in lpfc_cmpl_els_rsp()
3791 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_cmpl_els_rsp()
3792 lpfc_nlp_set_state(vport, ndlp, in lpfc_cmpl_els_rsp()
3802 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_rsp()
3808 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
3809 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
3811 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
3812 ndlp = NULL; in lpfc_cmpl_els_rsp()
3822 ndlp->nlp_flag & NLP_ACC_REGLOGIN) { in lpfc_cmpl_els_rsp()
3823 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
3824 ndlp = NULL; in lpfc_cmpl_els_rsp()
3842 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_rsp()
3844 ndlp->nlp_flag &= ~(NLP_ACC_REGLOGIN | NLP_RM_DFLT_RPI); in lpfc_cmpl_els_rsp()
3853 if (lpfc_nlp_not_used(ndlp)) in lpfc_cmpl_els_rsp()
3892 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_acc() argument
3911 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
3914 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
3928 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
3933 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
3951 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
3956 ndlp, ndlp->nlp_DID, ELS_CMD_PRLO); in lpfc_els_rsp_acc()
3973 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
3984 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_acc()
3985 ndlp->nlp_rpi, vport->fc_flag); in lpfc_els_rsp_acc()
3986 if (ndlp->nlp_flag & NLP_LOGO_ACC) { in lpfc_els_rsp_acc()
3988 if (!(ndlp->nlp_flag & NLP_RPI_REGISTERED || in lpfc_els_rsp_acc()
3989 ndlp->nlp_flag & NLP_REG_LOGIN_SEND)) in lpfc_els_rsp_acc()
3990 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
4030 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_reject() argument
4042 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_reject()
4043 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rsp_reject()
4066 elsiocb->iocb.ulpContext, ndlp->nlp_DID, in lpfc_els_rsp_reject()
4067 ndlp->nlp_flag, ndlp->nlp_state, ndlp->nlp_rpi); in lpfc_els_rsp_reject()
4070 ndlp->nlp_DID, ndlp->nlp_flag, rejectError); in lpfc_els_rsp_reject()
4104 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_adisc_acc() argument
4115 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_adisc_acc()
4116 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_adisc_acc()
4130 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_adisc_acc()
4131 ndlp->nlp_rpi); in lpfc_els_rsp_adisc_acc()
4145 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_adisc_acc()
4178 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_prli_acc() argument
4191 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_prli_acc()
4192 ndlp->nlp_DID, (ELS_CMD_ACC | (ELS_CMD_PRLI & ~ELS_RSP_MASK))); in lpfc_els_rsp_prli_acc()
4206 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_prli_acc()
4207 ndlp->nlp_rpi); in lpfc_els_rsp_prli_acc()
4222 if ((ndlp->nlp_type & NLP_FCP_TARGET) && in lpfc_els_rsp_prli_acc()
4239 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_prli_acc()
4280 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rnid_acc() argument
4295 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rnid_acc()
4296 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rnid_acc()
4339 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_rnid_acc()
4362 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) in lpfc_els_clear_rrq() argument
4388 ndlp->nlp_DID, ndlp->nlp_flag, rrq->rrq_exchg); in lpfc_els_clear_rrq()
4393 prrq = lpfc_get_active_rrq(vport, xri, ndlp->nlp_DID); in lpfc_els_clear_rrq()
4412 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_echo_acc() argument
4427 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_echo_acc()
4428 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_echo_acc()
4446 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_echo_acc()
4482 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_adisc() local
4486 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_adisc()
4487 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_adisc()
4489 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_adisc()
4490 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_adisc()
4491 (ndlp->nlp_flag & NLP_NPR_ADISC) != 0) { in lpfc_els_disc_adisc()
4493 ndlp->nlp_flag &= ~NLP_NPR_ADISC; in lpfc_els_disc_adisc()
4495 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_adisc()
4496 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_disc_adisc()
4497 lpfc_issue_els_adisc(vport, ndlp, 0); in lpfc_els_disc_adisc()
4540 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_plogi() local
4544 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_plogi()
4545 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_plogi()
4547 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_plogi()
4548 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_plogi()
4549 (ndlp->nlp_flag & NLP_DELAY_TMO) == 0 && in lpfc_els_disc_plogi()
4550 (ndlp->nlp_flag & NLP_NPR_ADISC) == 0) { in lpfc_els_disc_plogi()
4551 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_plogi()
4552 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_disc_plogi()
4553 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_disc_plogi()
4753 struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_rdp_res_attach_port_names() argument
4764 memcpy(desc->port_names.wwnn, &ndlp->nlp_nodename, in lpfc_rdp_res_attach_port_names()
4767 memcpy(desc->port_names.wwnn, &ndlp->nlp_portname, in lpfc_rdp_res_attach_port_names()
4778 struct lpfc_nodelist *ndlp = rdp_context->ndlp; in lpfc_els_rdp_cmpl() local
4779 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_rdp_cmpl()
4793 lpfc_max_els_tries, rdp_context->ndlp, in lpfc_els_rdp_cmpl()
4794 rdp_context->ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rdp_cmpl()
4795 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
4807 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rdp_cmpl()
4808 ndlp->nlp_rpi); in lpfc_els_rdp_cmpl()
4825 vport, ndlp); in lpfc_els_rdp_cmpl()
4841 ndlp, ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rdp_cmpl()
4842 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
4880 mbox->vport = rdp_context->ndlp->vport; in lpfc_get_rdp_info()
4914 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rdp() argument
4967 rdp_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rdp()
4972 lpfc_printf_vlog(ndlp->vport, KERN_WARNING, LOG_ELS, in lpfc_els_rcv_rdp()
4976 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rdp()
4989 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rdp()
5001 struct lpfc_nodelist *ndlp; in lpfc_els_lcb_rsp() local
5011 ndlp = lcb_context->ndlp; in lpfc_els_lcb_rsp()
5035 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
5036 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_lcb_rsp()
5039 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
5068 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
5069 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_lcb_rsp()
5070 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
5146 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lcb() argument
5218 lcb_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_lcb()
5220 lpfc_printf_vlog(ndlp->vport, KERN_ERR, in lpfc_els_rcv_lcb()
5223 lpfc_nlp_put(ndlp); in lpfc_els_rcv_lcb()
5231 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lcb()
5366 struct lpfc_nodelist *ndlp = NULL; in lpfc_rscn_recovery_check() local
5369 list_for_each_entry(ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_rscn_recovery_check()
5370 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_rscn_recovery_check()
5371 (ndlp->nlp_state == NLP_STE_UNUSED_NODE) || in lpfc_rscn_recovery_check()
5372 !lpfc_rscn_payload_check(vport, ndlp->nlp_DID)) in lpfc_rscn_recovery_check()
5374 lpfc_disc_state_machine(vport, ndlp, NULL, in lpfc_rscn_recovery_check()
5376 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_rscn_recovery_check()
5448 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rscn() argument
5483 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
5485 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
5513 ndlp->nlp_DID, vport->port_state, in lpfc_els_rcv_rscn()
5514 ndlp->nlp_flag); in lpfc_els_rcv_rscn()
5517 ndlp, NULL); in lpfc_els_rcv_rscn()
5528 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
5542 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
5587 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
5597 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
5612 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
5637 struct lpfc_nodelist *ndlp; in lpfc_els_handle_rscn() local
5659 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_els_handle_rscn()
5660 if (ndlp && NLP_CHK_NODE_ACT(ndlp) in lpfc_els_handle_rscn()
5661 && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) { in lpfc_els_handle_rscn()
5670 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_els_handle_rscn()
5671 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_handle_rscn()
5676 if (ndlp) { in lpfc_els_handle_rscn()
5677 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_handle_rscn()
5679 if (!ndlp) { in lpfc_els_handle_rscn()
5683 ndlp->nlp_prev_state = NLP_STE_UNUSED_NODE; in lpfc_els_handle_rscn()
5685 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_els_handle_rscn()
5686 if (!ndlp) { in lpfc_els_handle_rscn()
5690 lpfc_nlp_init(vport, ndlp, NameServer_DID); in lpfc_els_handle_rscn()
5691 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_handle_rscn()
5692 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_handle_rscn()
5694 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_handle_rscn()
5733 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_flogi() argument
5768 if ((lpfc_check_sparm(vport, ndlp, sp, CLASS3, 1))) { in lpfc_els_rcv_flogi()
5855 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_flogi()
5872 lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, NULL); in lpfc_els_rcv_flogi()
5917 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rnid() argument
5937 lpfc_els_rsp_rnid_acc(vport, rn->Format, cmdiocb, ndlp); in lpfc_els_rcv_rnid()
5945 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rnid()
5962 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_echo() argument
5971 lpfc_els_rsp_echo_acc(vport, pcmd, cmdiocb, ndlp); in lpfc_els_rcv_echo()
5990 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lirr() argument
5999 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lirr()
6021 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rrq() argument
6023 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rrq()
6025 lpfc_els_clear_rrq(vport, cmdiocb, ndlp); in lpfc_els_rcv_rrq()
6055 struct lpfc_nodelist *ndlp; in lpfc_els_rsp_rls_acc() local
6062 ndlp = (struct lpfc_nodelist *) pmb->context2; in lpfc_els_rsp_rls_acc()
6075 lpfc_max_els_tries, ndlp, in lpfc_els_rsp_rls_acc()
6076 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rls_acc()
6079 lpfc_nlp_put(ndlp); in lpfc_els_rsp_rls_acc()
6103 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rsp_rls_acc()
6107 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rls_acc()
6108 ndlp->nlp_rpi); in lpfc_els_rsp_rls_acc()
6142 struct lpfc_nodelist *ndlp; in lpfc_els_rsp_rps_acc() local
6150 ndlp = (struct lpfc_nodelist *) pmb->context2; in lpfc_els_rsp_rps_acc()
6164 lpfc_max_els_tries, ndlp, in lpfc_els_rsp_rps_acc()
6165 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rps_acc()
6168 lpfc_nlp_put(ndlp); in lpfc_els_rsp_rps_acc()
6198 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rsp_rps_acc()
6202 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rps_acc()
6203 ndlp->nlp_rpi); in lpfc_els_rsp_rps_acc()
6231 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rls() argument
6237 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rls()
6238 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rls()
6248 mbox->context2 = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rls()
6258 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rls()
6267 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rls()
6294 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rtv() argument
6304 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rtv()
6305 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rtv()
6311 lpfc_max_els_tries, ndlp, in lpfc_els_rcv_rtv()
6312 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rcv_rtv()
6335 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rcv_rtv()
6340 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rcv_rtv()
6341 ndlp->nlp_rpi, in lpfc_els_rcv_rtv()
6355 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rtv()
6378 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rps() argument
6388 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rps()
6389 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rps()
6411 mbox->context2 = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rps()
6421 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rps()
6432 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rps()
6450 lpfc_issue_els_rrq(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_rrq() argument
6461 if (ndlp != rrq->ndlp) in lpfc_issue_els_rrq()
6462 ndlp = rrq->ndlp; in lpfc_issue_els_rrq()
6463 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_rrq()
6468 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, did, in lpfc_issue_els_rrq()
6516 struct lpfc_nodelist *ndlp = lpfc_findnode_did(rrq->vport, in lpfc_send_rrq() local
6518 if (lpfc_test_rrq_active(phba, ndlp, rrq->xritag)) in lpfc_send_rrq()
6519 return lpfc_issue_els_rrq(rrq->vport, ndlp, in lpfc_send_rrq()
6546 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rpl_acc() argument
6554 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rpl_acc()
6555 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rpl_acc()
6585 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rpl_acc()
6586 ndlp->nlp_rpi); in lpfc_els_rsp_rpl_acc()
6615 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rpl() argument
6624 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rpl()
6625 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_rpl()
6631 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rpl()
6650 lpfc_els_rsp_rpl_acc(vport, cmdsize, cmdiocb, ndlp); in lpfc_els_rcv_rpl()
6681 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farp() argument
6720 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_els_rcv_farp()
6721 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_farp()
6724 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_rcv_farp()
6725 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_rcv_farp()
6727 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_rcv_farp()
6754 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farpr() argument
6771 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_farpr()
6932 struct lpfc_nodelist *ndlp; in lpfc_els_timeout_handler() local
6933 ndlp = __lpfc_findnode_rpi(vport, cmd->ulpContext); in lpfc_els_timeout_handler()
6934 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_timeout_handler()
6935 remote_ID = ndlp->nlp_DID; in lpfc_els_timeout_handler()
7105 struct lpfc_nodelist *ndlp; in lpfc_send_els_failure_event() local
7108 ndlp = cmdiocbp->context1; in lpfc_send_els_failure_event()
7109 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_send_els_failure_event()
7115 memcpy(lsrjt_event.header.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
7117 memcpy(lsrjt_event.header.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
7139 memcpy(fabric_event.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
7141 memcpy(fabric_event.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
7164 struct lpfc_nodelist *ndlp, in lpfc_send_els_event() argument
7211 memcpy(els_data->wwpn, &ndlp->nlp_portname, sizeof(struct lpfc_name)); in lpfc_send_els_event()
7212 memcpy(els_data->wwnn, &ndlp->nlp_nodename, sizeof(struct lpfc_name)); in lpfc_send_els_event()
7252 struct lpfc_nodelist *ndlp; in lpfc_els_unsol_buffer() local
7289 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_unsol_buffer()
7290 if (!ndlp) { in lpfc_els_unsol_buffer()
7292 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_els_unsol_buffer()
7293 if (!ndlp) in lpfc_els_unsol_buffer()
7296 lpfc_nlp_init(vport, ndlp, did); in lpfc_els_unsol_buffer()
7297 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
7300 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
7301 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_unsol_buffer()
7302 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_unsol_buffer()
7304 if (!ndlp) in lpfc_els_unsol_buffer()
7306 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
7309 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
7310 } else if (ndlp->nlp_state == NLP_STE_UNUSED_NODE) { in lpfc_els_unsol_buffer()
7312 ndlp = lpfc_nlp_get(ndlp); in lpfc_els_unsol_buffer()
7313 if (!ndlp) in lpfc_els_unsol_buffer()
7315 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
7327 if (ndlp->nlp_flag & NLP_IN_DEV_LOSS) { in lpfc_els_unsol_buffer()
7333 elsiocb->context1 = lpfc_nlp_get(ndlp); in lpfc_els_unsol_buffer()
7358 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7361 ndlp = lpfc_plogi_confirm_nport(phba, payload, ndlp); in lpfc_els_unsol_buffer()
7376 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
7394 ndlp->nlp_flag &= ~NLP_TARGET_REMOVE; in lpfc_els_unsol_buffer()
7397 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
7404 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7407 lpfc_els_rcv_flogi(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7409 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7414 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7417 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
7423 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_LOGO); in lpfc_els_unsol_buffer()
7428 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7431 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
7437 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLO); in lpfc_els_unsol_buffer()
7441 lpfc_els_rcv_lcb(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7445 lpfc_els_rcv_rdp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7449 lpfc_els_rcv_rscn(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7451 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7456 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7458 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
7465 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
7471 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7479 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
7485 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7488 lpfc_els_rcv_farpr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7493 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7496 lpfc_els_rcv_farp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7501 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7504 lpfc_els_rcv_fan(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7509 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7517 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLI); in lpfc_els_unsol_buffer()
7522 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7525 lpfc_els_rcv_lirr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7527 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7532 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7535 lpfc_els_rcv_rls(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7537 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7542 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7545 lpfc_els_rcv_rps(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7547 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7552 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7555 lpfc_els_rcv_rpl(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7557 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7562 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7565 lpfc_els_rcv_rnid(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7567 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7572 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7574 lpfc_els_rcv_rtv(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7576 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7581 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7584 lpfc_els_rcv_rrq(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7586 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7591 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
7594 lpfc_els_rcv_echo(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
7596 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7617 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
7627 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, elsiocb, ndlp, in lpfc_els_unsol_buffer()
7749 struct lpfc_nodelist *ndlp, *ndlp_fdmi; in lpfc_do_scr_ns_plogi() local
7769 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_do_scr_ns_plogi()
7770 if (!ndlp) { in lpfc_do_scr_ns_plogi()
7771 ndlp = mempool_alloc(phba->nlp_mem_pool, GFP_KERNEL); in lpfc_do_scr_ns_plogi()
7772 if (!ndlp) { in lpfc_do_scr_ns_plogi()
7782 lpfc_nlp_init(vport, ndlp, NameServer_DID); in lpfc_do_scr_ns_plogi()
7783 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_do_scr_ns_plogi()
7784 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_do_scr_ns_plogi()
7785 if (!ndlp) { in lpfc_do_scr_ns_plogi()
7796 ndlp->nlp_type |= NLP_FABRIC; in lpfc_do_scr_ns_plogi()
7798 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_do_scr_ns_plogi()
7800 if (lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0)) { in lpfc_do_scr_ns_plogi()
7852 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) pmb->context2; in lpfc_cmpl_reg_new_vport() local
7896 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
7938 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
7955 struct lpfc_nodelist *ndlp) in lpfc_register_new_vport() argument
7964 mbox->context2 = lpfc_nlp_get(ndlp); in lpfc_register_new_vport()
7971 lpfc_nlp_put(ndlp); in lpfc_register_new_vport()
8003 struct lpfc_nodelist *ndlp; in lpfc_cancel_all_vport_retry_delay_timer() local
8016 ndlp = lpfc_findnode_did(vports[i], Fabric_DID); in lpfc_cancel_all_vport_retry_delay_timer()
8017 if (ndlp) in lpfc_cancel_all_vport_retry_delay_timer()
8018 lpfc_cancel_retry_delay_tmo(vports[i], ndlp); in lpfc_cancel_all_vport_retry_delay_timer()
8036 struct lpfc_nodelist *ndlp; in lpfc_retry_pport_discovery() local
8043 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_retry_pport_discovery()
8044 if (!ndlp) in lpfc_retry_pport_discovery()
8048 mod_timer(&ndlp->nlp_delayfunc, jiffies + msecs_to_jiffies(1000)); in lpfc_retry_pport_discovery()
8050 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_retry_pport_discovery()
8052 ndlp->nlp_last_elscmd = ELS_CMD_FLOGI; in lpfc_retry_pport_discovery()
8105 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_fdisc() local
8173 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_cmpl_els_fdisc()
8201 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
8208 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
8217 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_fdisc()
8243 lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_fdisc() argument
8252 int did = ndlp->nlp_DID; in lpfc_issue_els_fdisc()
8258 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_fdisc()
8343 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_npiv_logo() local
8346 ndlp = (struct lpfc_nodelist *)cmdiocb->context1; in lpfc_cmpl_els_npiv_logo()
8356 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_npiv_logo()
8362 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_npiv_logo()
8391 lpfc_issue_els_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_issue_els_npiv_logo() argument
8400 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, ndlp->nlp_DID, in lpfc_issue_els_npiv_logo()
8416 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_issue_els_npiv_logo()
8420 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
8425 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
8732 void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp) in lpfc_fabric_abort_nport() argument
8735 struct lpfc_hba *phba = ndlp->phba; in lpfc_fabric_abort_nport()
8742 if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { in lpfc_fabric_abort_nport()
8796 if (sglq_entry->ndlp && sglq_entry->ndlp->vport == vport) in lpfc_sli4_vport_delete_els_xri_aborted()
8797 sglq_entry->ndlp = NULL; in lpfc_sli4_vport_delete_els_xri_aborted()
8822 struct lpfc_nodelist *ndlp; in lpfc_sli4_els_xri_aborted() local
8831 ndlp = sglq_entry->ndlp; in lpfc_sli4_els_xri_aborted()
8832 sglq_entry->ndlp = NULL; in lpfc_sli4_els_xri_aborted()
8840 lpfc_set_rrq_active(phba, ndlp, in lpfc_sli4_els_xri_aborted()
8880 struct lpfc_nodelist *ndlp) in lpfc_sli_abts_recover_port() argument
8888 if (ndlp->nlp_state != NLP_STE_MAPPED_NODE) { in lpfc_sli_abts_recover_port()
8891 "rport in state 0x%x\n", ndlp->nlp_state); in lpfc_sli_abts_recover_port()
8898 shost->host_no, ndlp->nlp_DID, in lpfc_sli_abts_recover_port()
8899 vport->vpi, ndlp->nlp_rpi, ndlp->nlp_state, in lpfc_sli_abts_recover_port()
8900 ndlp->nlp_flag); in lpfc_sli_abts_recover_port()
8906 ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE; in lpfc_sli_abts_recover_port()
8908 lpfc_issue_els_logo(vport, ndlp, 0); in lpfc_sli_abts_recover_port()
8909 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_sli_abts_recover_port()