Lines Matching refs:ln
117 struct csio_lnode *ln = hw->rln; in csio_ln_lookup_by_portid() local
122 ln = (struct csio_lnode *) tmp; in csio_ln_lookup_by_portid()
123 if (ln->portid == portid) in csio_ln_lookup_by_portid()
124 return ln; in csio_ln_lookup_by_portid()
261 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_done() local
264 csio_ln_dbg(ln, "WR error:%x in processing fdmi rpa cmd\n", in csio_ln_fdmi_done()
266 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_done()
271 csio_ln_dbg(ln, "fdmi rpa cmd rejected reason %x expl %x\n", in csio_ln_fdmi_done()
290 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_rhba_cbfn() local
297 csio_ln_dbg(ln, "WR error:%x in processing fdmi rhba cmd\n", in csio_ln_fdmi_rhba_cbfn()
299 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
304 csio_ln_dbg(ln, "fdmi rhba cmd rejected reason %x expl %x\n", in csio_ln_fdmi_rhba_cbfn()
309 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
320 memcpy(&port_name->portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_rhba_cbfn()
342 if (hw->pport[ln->portid].link_speed == FW_PORT_CAP_SPEED_1G) in csio_ln_fdmi_rhba_cbfn()
344 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP_SPEED_10G) in csio_ln_fdmi_rhba_cbfn()
353 mfs = ln->ln_sparm.csp.sp_bb_data; in csio_ln_fdmi_rhba_cbfn()
375 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
376 csio_ln_dbg(ln, "Failed to issue fdmi rpa req\n"); in csio_ln_fdmi_rhba_cbfn()
395 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_dprt_cbfn() local
401 csio_ln_dbg(ln, "WR error:%x in processing fdmi dprt cmd\n", in csio_ln_fdmi_dprt_cbfn()
403 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
407 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
412 csio_ln_dbg(ln, "fdmi dprt cmd rejected reason %x expl %x\n", in csio_ln_fdmi_dprt_cbfn()
424 memcpy(&hbaid->id, csio_ln_wwpn(ln), 8); /* HBA identifer */ in csio_ln_fdmi_dprt_cbfn()
430 memcpy(®_pl->port[0].portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_dprt_cbfn()
439 csio_append_attrib(&pld, FC_FDMI_HBA_ATTR_NODENAME, csio_ln_wwnn(ln), in csio_ln_fdmi_dprt_cbfn()
482 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
483 csio_ln_dbg(ln, "Failed to issue fdmi rhba req\n"); in csio_ln_fdmi_dprt_cbfn()
496 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_dhba_cbfn() local
502 csio_ln_dbg(ln, "WR error:%x in processing fdmi dhba cmd\n", in csio_ln_fdmi_dhba_cbfn()
504 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
508 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
513 csio_ln_dbg(ln, "fdmi dhba cmd rejected reason %x expl %x\n", in csio_ln_fdmi_dhba_cbfn()
526 memcpy(&port_name->portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_dhba_cbfn()
533 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
534 csio_ln_dbg(ln, "Failed to issue fdmi dprt req\n"); in csio_ln_fdmi_dhba_cbfn()
547 csio_ln_fdmi_start(struct csio_lnode *ln, void *context) in csio_ln_fdmi_start() argument
555 if (!(ln->flags & CSIO_LNF_FDMI_ENABLE)) in csio_ln_fdmi_start()
559 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_start()
565 fdmi_req = ln->mgmt_req; in csio_ln_fdmi_start()
566 fdmi_req->lnode = ln; in csio_ln_fdmi_start()
576 memcpy(&hbaid->id, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_start()
582 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_start()
583 csio_ln_dbg(ln, "Failed to issue fdmi dhba req\n"); in csio_ln_fdmi_start()
599 struct csio_lnode *ln = ((struct csio_lnode *)mbp->priv); in csio_ln_vnp_read_cbfn() local
615 memcpy(ln->mac, rsp->vnport_mac, sizeof(ln->mac)); in csio_ln_vnp_read_cbfn()
617 ln->nport_id = ntohl(nport_id); in csio_ln_vnp_read_cbfn()
618 ln->nport_id = ln->nport_id >> 8; in csio_ln_vnp_read_cbfn()
626 memcpy(csio_ln_wwnn(ln), rsp->vnport_wwnn, 8); in csio_ln_vnp_read_cbfn()
627 memcpy(csio_ln_wwpn(ln), rsp->vnport_wwpn, 8); in csio_ln_vnp_read_cbfn()
631 ln->ln_sparm.csp.sp_hi_ver = csp->sp_hi_ver; in csio_ln_vnp_read_cbfn()
632 ln->ln_sparm.csp.sp_lo_ver = csp->sp_lo_ver; in csio_ln_vnp_read_cbfn()
633 ln->ln_sparm.csp.sp_bb_cred = csp->sp_bb_cred; in csio_ln_vnp_read_cbfn()
634 ln->ln_sparm.csp.sp_features = csp->sp_features; in csio_ln_vnp_read_cbfn()
635 ln->ln_sparm.csp.sp_bb_data = csp->sp_bb_data; in csio_ln_vnp_read_cbfn()
636 ln->ln_sparm.csp.sp_r_a_tov = csp->sp_r_a_tov; in csio_ln_vnp_read_cbfn()
637 ln->ln_sparm.csp.sp_e_d_tov = csp->sp_e_d_tov; in csio_ln_vnp_read_cbfn()
641 ln->ln_sparm.clsp[2].cp_class = clsp->cp_class; in csio_ln_vnp_read_cbfn()
642 ln->ln_sparm.clsp[2].cp_init = clsp->cp_init; in csio_ln_vnp_read_cbfn()
643 ln->ln_sparm.clsp[2].cp_recip = clsp->cp_recip; in csio_ln_vnp_read_cbfn()
644 ln->ln_sparm.clsp[2].cp_rdfs = clsp->cp_rdfs; in csio_ln_vnp_read_cbfn()
651 csio_lnode_async_event(ln, CSIO_LN_FC_ATTRIB_UPDATE); in csio_ln_vnp_read_cbfn()
662 csio_ln_vnp_read(struct csio_lnode *ln, in csio_ln_vnp_read() argument
665 struct csio_hw *hw = ln->hwp; in csio_ln_vnp_read()
676 csio_fcoe_vnp_read_init_mb(ln, mbp, in csio_ln_vnp_read()
678 ln->fcf_flowid, in csio_ln_vnp_read()
679 ln->vnp_flowid, in csio_ln_vnp_read()
700 csio_fcoe_enable_link(struct csio_lnode *ln, bool enable) in csio_fcoe_enable_link() argument
702 struct csio_hw *hw = ln->hwp; in csio_fcoe_enable_link()
716 portid = ln->portid; in csio_fcoe_enable_link()
722 csio_write_fcoe_link_cond_init_mb(ln, mbp, CSIO_MB_DEFAULT_TMO, in csio_fcoe_enable_link()
746 memcpy(csio_ln_wwnn(ln), lcmd->vnport_wwnn, 8); in csio_fcoe_enable_link()
747 memcpy(csio_ln_wwpn(ln), lcmd->vnport_wwpn, 8); in csio_fcoe_enable_link()
767 struct csio_lnode *ln = (struct csio_lnode *)mbp->priv; in csio_ln_read_fcf_cbfn() local
775 csio_ln_err(ln, "FCOE FCF cmd failed with ret x%x\n", in csio_ln_read_fcf_cbfn()
782 fcf_info = ln->fcfinfo; in csio_ln_read_fcf_cbfn()
813 csio_ln_read_fcf_entry(struct csio_lnode *ln, in csio_ln_read_fcf_entry() argument
816 struct csio_hw *hw = ln->hwp; in csio_ln_read_fcf_entry()
826 csio_fcoe_read_fcf_init_mb(ln, mbp, CSIO_MB_DEFAULT_TMO, in csio_ln_read_fcf_entry()
827 ln->portid, ln->fcf_flowid, cbfn); in csio_ln_read_fcf_entry()
858 struct csio_lnode *ln = NULL; in csio_handle_link_up() local
861 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_handle_link_up()
862 if (!ln) { in csio_handle_link_up()
864 ln = csio_ln_lookup_by_portid(hw, portid); in csio_handle_link_up()
865 if (!ln) { in csio_handle_link_up()
873 if (ln->vnp_flowid != CSIO_INVALID_IDX) { in csio_handle_link_up()
878 if (!ln) { in csio_handle_link_up()
886 ln->portid = portid; in csio_handle_link_up()
888 ln->vnp_flowid = vnpi; in csio_handle_link_up()
889 ln->dev_num &= ~0xFFFF; in csio_handle_link_up()
890 ln->dev_num |= vnpi; in csio_handle_link_up()
894 ln->fcf_flowid = fcfi; in csio_handle_link_up()
898 CSIO_INC_STATS(ln, n_link_up); in csio_handle_link_up()
901 csio_post_event(&ln->sm, CSIO_LNE_LINKUP); in csio_handle_link_up()
917 csio_post_event_rns(struct csio_lnode *ln, enum csio_rn_ev evt) in csio_post_event_rns() argument
919 struct csio_rnode *rnhead = (struct csio_rnode *) &ln->rnhead; in csio_post_event_rns()
939 csio_cleanup_rns(struct csio_lnode *ln) in csio_cleanup_rns() argument
941 struct csio_rnode *rnhead = (struct csio_rnode *) &ln->rnhead; in csio_cleanup_rns()
947 csio_put_rnode(ln, rn); in csio_cleanup_rns()
965 csio_post_event_lns(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_post_event_lns() argument
971 if (csio_is_npiv_ln(ln)) { in csio_post_event_lns()
972 csio_post_event(&ln->sm, evt); in csio_post_event_lns()
976 sln = ln; in csio_post_event_lns()
984 csio_post_event(&ln->sm, evt); in csio_post_event_lns()
997 csio_ln_down(struct csio_lnode *ln) in csio_ln_down() argument
999 csio_post_event_lns(ln, CSIO_LNE_LINK_DOWN); in csio_ln_down()
1021 struct csio_lnode *ln; in csio_handle_link_down() local
1024 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_handle_link_down()
1025 if (ln) { in csio_handle_link_down()
1026 fp = ln->fcfinfo; in csio_handle_link_down()
1027 CSIO_INC_STATS(ln, n_link_down); in csio_handle_link_down()
1030 if (!csio_is_lnode_ready(ln)) { in csio_handle_link_down()
1031 csio_ln_warn(ln, in csio_handle_link_down()
1035 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1041 csio_ln_warn(ln, in csio_handle_link_down()
1044 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1049 if (ln->fcf_flowid != fcfi) { in csio_handle_link_down()
1050 csio_ln_warn(ln, in csio_handle_link_down()
1053 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1060 csio_ln_down(ln); in csio_handle_link_down()
1078 csio_is_lnode_ready(struct csio_lnode *ln) in csio_is_lnode_ready() argument
1080 return (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)); in csio_is_lnode_ready()
1096 csio_lns_uninit(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_uninit() argument
1098 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_uninit()
1102 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_uninit()
1105 csio_set_state(&ln->sm, csio_lns_online); in csio_lns_uninit()
1107 if (csio_is_phys_ln(ln)) { in csio_lns_uninit()
1108 rv = csio_ln_read_fcf_entry(ln, in csio_lns_uninit()
1112 CSIO_INC_STATS(ln, n_err); in csio_lns_uninit()
1117 list_add_tail(&ln->fcfinfo->list, &rln->fcf_lsthead); in csio_lns_uninit()
1120 rv = csio_ln_vnp_read(ln, csio_ln_vnp_read_cbfn); in csio_lns_uninit()
1123 CSIO_INC_STATS(ln, n_err); in csio_lns_uninit()
1131 csio_ln_dbg(ln, in csio_lns_uninit()
1133 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_uninit()
1134 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_uninit()
1149 csio_lns_online(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_online() argument
1151 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_online()
1153 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_online()
1156 csio_ln_warn(ln, in csio_lns_online()
1158 "Ignoring linkup on port:%d\n", ln->portid); in csio_lns_online()
1159 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_online()
1163 csio_set_state(&ln->sm, csio_lns_ready); in csio_lns_online()
1166 csio_lnode_async_event(ln, CSIO_LN_FC_LINKUP); in csio_lns_online()
1174 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_online()
1175 if (csio_is_phys_ln(ln)) { in csio_lns_online()
1177 list_del_init(&ln->fcfinfo->list); in csio_lns_online()
1182 csio_ln_dbg(ln, in csio_lns_online()
1184 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_online()
1185 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_online()
1201 csio_lns_ready(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_ready() argument
1203 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_ready()
1205 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_ready()
1208 csio_ln_dbg(ln, in csio_lns_ready()
1210 "in ln state[ready].\n", evt, ln->nport_id); in csio_lns_ready()
1211 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_ready()
1215 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1216 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1219 csio_lnode_async_event(ln, CSIO_LN_FC_LINKDOWN); in csio_lns_ready()
1222 if (csio_is_phys_ln(ln)) { in csio_lns_ready()
1224 list_del_init(&ln->fcfinfo->list); in csio_lns_ready()
1229 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1230 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1236 csio_lnode_async_event(ln, CSIO_LN_FC_LINKDOWN); in csio_lns_ready()
1239 if (csio_is_phys_ln(ln)) { in csio_lns_ready()
1241 list_del_init(&ln->fcfinfo->list); in csio_lns_ready()
1246 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_ready()
1247 csio_post_event_rns(ln, CSIO_RNFE_CLOSE); in csio_lns_ready()
1251 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1252 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1256 csio_ln_dbg(ln, in csio_lns_ready()
1258 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_ready()
1259 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_ready()
1275 csio_lns_offline(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_offline() argument
1277 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_offline()
1281 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_offline()
1284 csio_set_state(&ln->sm, csio_lns_online); in csio_lns_offline()
1286 if (csio_is_phys_ln(ln)) { in csio_lns_offline()
1287 rv = csio_ln_read_fcf_entry(ln, in csio_lns_offline()
1291 CSIO_INC_STATS(ln, n_err); in csio_lns_offline()
1296 list_add_tail(&ln->fcfinfo->list, &rln->fcf_lsthead); in csio_lns_offline()
1299 rv = csio_ln_vnp_read(ln, csio_ln_vnp_read_cbfn); in csio_lns_offline()
1302 CSIO_INC_STATS(ln, n_err); in csio_lns_offline()
1309 csio_ln_dbg(ln, in csio_lns_offline()
1311 "in ln state[offline].\n", evt, ln->nport_id); in csio_lns_offline()
1312 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_offline()
1316 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_offline()
1317 csio_post_event_rns(ln, CSIO_RNFE_CLOSE); in csio_lns_offline()
1321 csio_ln_dbg(ln, in csio_lns_offline()
1323 "ln state[offline]\n", evt, ln->nport_id); in csio_lns_offline()
1324 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_offline()
1350 csio_lnode_state_to_str(struct csio_lnode *ln, int8_t *str) in csio_lnode_state_to_str() argument
1352 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_uninit)) { in csio_lnode_state_to_str()
1356 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)) { in csio_lnode_state_to_str()
1360 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_offline)) { in csio_lnode_state_to_str()
1468 struct csio_lnode *ln; in csio_fcoe_fwevt_handler() local
1536 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_fcoe_fwevt_handler()
1537 if (!ln) { in csio_fcoe_fwevt_handler()
1545 rn = csio_confirm_rnode(ln, rdev_flowid, in csio_fcoe_fwevt_handler()
1548 csio_ln_dbg(ln, in csio_fcoe_fwevt_handler()
1556 ln->prev_evt = ln->cur_evt; in csio_fcoe_fwevt_handler()
1557 ln->cur_evt = rdev_wr->event_cause; in csio_fcoe_fwevt_handler()
1558 CSIO_INC_STATS(ln, n_evt_fw[rdev_wr->event_cause]); in csio_fcoe_fwevt_handler()
1563 csio_ln_dbg(ln, in csio_fcoe_fwevt_handler()
1567 csio_post_event(&ln->sm, evt); in csio_fcoe_fwevt_handler()
1603 csio_lnode_start(struct csio_lnode *ln) in csio_lnode_start() argument
1606 if (csio_is_phys_ln(ln) && !(ln->flags & CSIO_LNF_LINK_ENABLE)) { in csio_lnode_start()
1607 rv = csio_fcoe_enable_link(ln, 1); in csio_lnode_start()
1608 ln->flags |= CSIO_LNF_LINK_ENABLE; in csio_lnode_start()
1622 csio_lnode_stop(struct csio_lnode *ln) in csio_lnode_stop() argument
1624 csio_post_event_lns(ln, CSIO_LNE_DOWN_LINK); in csio_lnode_stop()
1625 if (csio_is_phys_ln(ln) && (ln->flags & CSIO_LNF_LINK_ENABLE)) { in csio_lnode_stop()
1626 csio_fcoe_enable_link(ln, 0); in csio_lnode_stop()
1627 ln->flags &= ~CSIO_LNF_LINK_ENABLE; in csio_lnode_stop()
1629 csio_ln_dbg(ln, "stopping ln :%p\n", ln); in csio_lnode_stop()
1641 csio_lnode_close(struct csio_lnode *ln) in csio_lnode_close() argument
1643 csio_post_event_lns(ln, CSIO_LNE_CLOSE); in csio_lnode_close()
1644 if (csio_is_phys_ln(ln)) in csio_lnode_close()
1645 ln->vnp_flowid = CSIO_INVALID_IDX; in csio_lnode_close()
1647 csio_ln_dbg(ln, "closed ln :%p\n", ln); in csio_lnode_close()
1712 struct csio_lnode *ln = io_req->lnode; in csio_ln_mgmt_submit_wr() local
1746 ln->nport_id, rn->nport_id, in csio_ln_mgmt_submit_wr()
1815 csio_ln_fdmi_init(struct csio_lnode *ln) in csio_ln_fdmi_init() argument
1817 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_fdmi_init()
1821 ln->mgmt_req = kzalloc(sizeof(struct csio_ioreq), GFP_KERNEL); in csio_ln_fdmi_init()
1822 if (!ln->mgmt_req) { in csio_ln_fdmi_init()
1823 csio_ln_err(ln, "Failed to alloc ioreq for FDMI\n"); in csio_ln_fdmi_init()
1829 dma_buf = &ln->mgmt_req->dma_buf; in csio_ln_fdmi_init()
1835 kfree(ln->mgmt_req); in csio_ln_fdmi_init()
1836 ln->mgmt_req = NULL; in csio_ln_fdmi_init()
1840 ln->flags |= CSIO_LNF_FDMI_ENABLE; in csio_ln_fdmi_init()
1849 csio_ln_fdmi_exit(struct csio_lnode *ln) in csio_ln_fdmi_exit() argument
1852 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_fdmi_exit()
1854 if (!ln->mgmt_req) in csio_ln_fdmi_exit()
1857 dma_buf = &ln->mgmt_req->dma_buf; in csio_ln_fdmi_exit()
1862 kfree(ln->mgmt_req); in csio_ln_fdmi_exit()
1867 csio_scan_done(struct csio_lnode *ln, unsigned long ticks, in csio_scan_done() argument
1876 if (!ln->tgt_scan_tick) in csio_scan_done()
1877 ln->tgt_scan_tick = ticks; in csio_scan_done()
1879 if (((ticks - ln->tgt_scan_tick) >= delta_scan_ticks)) { in csio_scan_done()
1880 if (!ln->last_scan_ntgts) in csio_scan_done()
1881 ln->last_scan_ntgts = ln->n_scsi_tgts; in csio_scan_done()
1883 if (ln->last_scan_ntgts == ln->n_scsi_tgts) in csio_scan_done()
1886 ln->last_scan_ntgts = ln->n_scsi_tgts; in csio_scan_done()
1888 ln->tgt_scan_tick = ticks; in csio_scan_done()
1907 struct csio_lnode *ln; in csio_notify_lnodes() local
1913 ln = (struct csio_lnode *) tmp; in csio_notify_lnodes()
1917 csio_lnode_start(ln); in csio_notify_lnodes()
1922 csio_lnode_close(ln); in csio_notify_lnodes()
1926 csio_lnode_stop(ln); in csio_notify_lnodes()
1949 struct csio_lnode *ln; in csio_disable_lnodes() local
1955 ln = (struct csio_lnode *) tmp; in csio_disable_lnodes()
1956 if (ln->portid != portid) in csio_disable_lnodes()
1960 csio_lnode_stop(ln); in csio_disable_lnodes()
1962 csio_lnode_start(ln); in csio_disable_lnodes()
1972 csio_ln_init(struct csio_lnode *ln) in csio_ln_init() argument
1976 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_init()
1978 csio_init_state(&ln->sm, csio_lns_uninit); in csio_ln_init()
1979 ln->vnp_flowid = CSIO_INVALID_IDX; in csio_ln_init()
1980 ln->fcf_flowid = CSIO_INVALID_IDX; in csio_ln_init()
1982 if (csio_is_root_ln(ln)) { in csio_ln_init()
1986 ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info), GFP_KERNEL); in csio_ln_init()
1987 if (!ln->fcfinfo) { in csio_ln_init()
1988 csio_ln_err(ln, "Failed to alloc FCF record\n"); in csio_ln_init()
1993 INIT_LIST_HEAD(&ln->fcf_lsthead); in csio_ln_init()
1994 kref_init(&ln->fcfinfo->kref); in csio_ln_init()
1996 if (csio_fdmi_enable && csio_ln_fdmi_init(ln)) in csio_ln_init()
2005 rln = csio_root_lnode(ln); in csio_ln_init()
2007 if (csio_is_npiv_ln(ln)) { in csio_ln_init()
2009 pln = csio_parent_lnode(ln); in csio_ln_init()
2011 ln->fcfinfo = pln->fcfinfo; in csio_ln_init()
2014 ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info), in csio_ln_init()
2016 if (!ln->fcfinfo) { in csio_ln_init()
2017 csio_ln_err(ln, "Failed to alloc FCF info\n"); in csio_ln_init()
2022 kref_init(&ln->fcfinfo->kref); in csio_ln_init()
2024 if (csio_fdmi_enable && csio_ln_fdmi_init(ln)) in csio_ln_init()
2036 csio_ln_exit(struct csio_lnode *ln) in csio_ln_exit() argument
2040 csio_cleanup_rns(ln); in csio_ln_exit()
2041 if (csio_is_npiv_ln(ln)) { in csio_ln_exit()
2042 pln = csio_parent_lnode(ln); in csio_ln_exit()
2045 kref_put(&ln->fcfinfo->kref, csio_free_fcfinfo); in csio_ln_exit()
2047 csio_ln_fdmi_exit(ln); in csio_ln_exit()
2049 ln->fcfinfo = NULL; in csio_ln_exit()
2058 csio_lnode_init(struct csio_lnode *ln, struct csio_hw *hw, in csio_lnode_init() argument
2064 csio_lnode_to_hw(ln) = hw; in csio_lnode_init()
2068 ln->pln = pln; in csio_lnode_init()
2070 ln->pln = NULL; in csio_lnode_init()
2073 ln->n_scsi_tgts = 0; in csio_lnode_init()
2074 ln->last_scan_ntgts = 0; in csio_lnode_init()
2075 ln->tgt_scan_tick = 0; in csio_lnode_init()
2078 INIT_LIST_HEAD(&ln->rnhead); in csio_lnode_init()
2079 INIT_LIST_HEAD(&ln->cln_head); in csio_lnode_init()
2082 ln->params.log_level = hw->params.log_level; in csio_lnode_init()
2084 if (csio_ln_init(ln)) in csio_lnode_init()
2089 list_add_tail(&ln->sm.sm_list, pln ? &pln->cln_head : &hw->sln_head); in csio_lnode_init()
2098 csio_lnode_to_hw(ln) = NULL; in csio_lnode_init()
2108 csio_lnode_exit(struct csio_lnode *ln) in csio_lnode_exit() argument
2110 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lnode_exit()
2112 csio_ln_exit(ln); in csio_lnode_exit()
2117 list_del_init(&ln->sm.sm_list); in csio_lnode_exit()
2122 if (ln->pln) in csio_lnode_exit()
2123 ln->pln->num_vports--; in csio_lnode_exit()
2133 csio_lnode_to_hw(ln) = NULL; in csio_lnode_exit()