Lines Matching refs:ln
117 struct csio_lnode *ln; 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()
270 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_done() local
273 csio_ln_dbg(ln, "WR error:%x in processing fdmi rpa cmd\n", in csio_ln_fdmi_done()
275 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_done()
280 csio_ln_dbg(ln, "fdmi rpa cmd rejected reason %x expl %x\n", in csio_ln_fdmi_done()
299 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_rhba_cbfn() local
306 csio_ln_dbg(ln, "WR error:%x in processing fdmi rhba cmd\n", in csio_ln_fdmi_rhba_cbfn()
308 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
313 csio_ln_dbg(ln, "fdmi rhba cmd rejected reason %x expl %x\n", in csio_ln_fdmi_rhba_cbfn()
318 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
329 memcpy(&port_name->portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_rhba_cbfn()
351 if (hw->pport[ln->portid].link_speed == FW_PORT_CAP_SPEED_1G) in csio_ln_fdmi_rhba_cbfn()
353 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP_SPEED_10G) in csio_ln_fdmi_rhba_cbfn()
355 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP32_SPEED_25G) in csio_ln_fdmi_rhba_cbfn()
357 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP32_SPEED_40G) in csio_ln_fdmi_rhba_cbfn()
359 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP32_SPEED_50G) in csio_ln_fdmi_rhba_cbfn()
361 else if (hw->pport[ln->portid].link_speed == FW_PORT_CAP32_SPEED_100G) in csio_ln_fdmi_rhba_cbfn()
369 mfs = ln->ln_sparm.csp.sp_bb_data; in csio_ln_fdmi_rhba_cbfn()
391 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_rhba_cbfn()
392 csio_ln_dbg(ln, "Failed to issue fdmi rpa req\n"); in csio_ln_fdmi_rhba_cbfn()
411 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_dprt_cbfn() local
417 csio_ln_dbg(ln, "WR error:%x in processing fdmi dprt cmd\n", in csio_ln_fdmi_dprt_cbfn()
419 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
423 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
428 csio_ln_dbg(ln, "fdmi dprt cmd rejected reason %x expl %x\n", in csio_ln_fdmi_dprt_cbfn()
440 memcpy(&hbaid->id, csio_ln_wwpn(ln), 8); /* HBA identifer */ in csio_ln_fdmi_dprt_cbfn()
446 memcpy(®_pl->port[0].portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_dprt_cbfn()
455 csio_append_attrib(&pld, FC_FDMI_HBA_ATTR_NODENAME, csio_ln_wwnn(ln), in csio_ln_fdmi_dprt_cbfn()
497 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dprt_cbfn()
498 csio_ln_dbg(ln, "Failed to issue fdmi rhba req\n"); in csio_ln_fdmi_dprt_cbfn()
511 struct csio_lnode *ln = fdmi_req->lnode; in csio_ln_fdmi_dhba_cbfn() local
517 csio_ln_dbg(ln, "WR error:%x in processing fdmi dhba cmd\n", in csio_ln_fdmi_dhba_cbfn()
519 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
523 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
528 csio_ln_dbg(ln, "fdmi dhba cmd rejected reason %x expl %x\n", in csio_ln_fdmi_dhba_cbfn()
541 memcpy(&port_name->portname, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_dhba_cbfn()
548 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_dhba_cbfn()
549 csio_ln_dbg(ln, "Failed to issue fdmi dprt req\n"); in csio_ln_fdmi_dhba_cbfn()
562 csio_ln_fdmi_start(struct csio_lnode *ln, void *context) in csio_ln_fdmi_start() argument
570 if (!(ln->flags & CSIO_LNF_FDMI_ENABLE)) in csio_ln_fdmi_start()
574 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_start()
580 fdmi_req = ln->mgmt_req; in csio_ln_fdmi_start()
581 fdmi_req->lnode = ln; in csio_ln_fdmi_start()
591 memcpy(&hbaid->id, csio_ln_wwpn(ln), 8); in csio_ln_fdmi_start()
597 CSIO_INC_STATS(ln, n_fdmi_err); in csio_ln_fdmi_start()
598 csio_ln_dbg(ln, "Failed to issue fdmi dhba req\n"); in csio_ln_fdmi_start()
614 struct csio_lnode *ln = ((struct csio_lnode *)mbp->priv); in csio_ln_vnp_read_cbfn() local
630 memcpy(ln->mac, rsp->vnport_mac, sizeof(ln->mac)); in csio_ln_vnp_read_cbfn()
632 ln->nport_id = ntohl(nport_id); in csio_ln_vnp_read_cbfn()
633 ln->nport_id = ln->nport_id >> 8; in csio_ln_vnp_read_cbfn()
641 memcpy(csio_ln_wwnn(ln), rsp->vnport_wwnn, 8); in csio_ln_vnp_read_cbfn()
642 memcpy(csio_ln_wwpn(ln), rsp->vnport_wwpn, 8); in csio_ln_vnp_read_cbfn()
646 ln->ln_sparm.csp.sp_hi_ver = csp->sp_hi_ver; in csio_ln_vnp_read_cbfn()
647 ln->ln_sparm.csp.sp_lo_ver = csp->sp_lo_ver; in csio_ln_vnp_read_cbfn()
648 ln->ln_sparm.csp.sp_bb_cred = csp->sp_bb_cred; in csio_ln_vnp_read_cbfn()
649 ln->ln_sparm.csp.sp_features = csp->sp_features; in csio_ln_vnp_read_cbfn()
650 ln->ln_sparm.csp.sp_bb_data = csp->sp_bb_data; in csio_ln_vnp_read_cbfn()
651 ln->ln_sparm.csp.sp_r_a_tov = csp->sp_r_a_tov; in csio_ln_vnp_read_cbfn()
652 ln->ln_sparm.csp.sp_e_d_tov = csp->sp_e_d_tov; in csio_ln_vnp_read_cbfn()
656 ln->ln_sparm.clsp[2].cp_class = clsp->cp_class; in csio_ln_vnp_read_cbfn()
657 ln->ln_sparm.clsp[2].cp_init = clsp->cp_init; in csio_ln_vnp_read_cbfn()
658 ln->ln_sparm.clsp[2].cp_recip = clsp->cp_recip; in csio_ln_vnp_read_cbfn()
659 ln->ln_sparm.clsp[2].cp_rdfs = clsp->cp_rdfs; in csio_ln_vnp_read_cbfn()
666 csio_lnode_async_event(ln, CSIO_LN_FC_ATTRIB_UPDATE); in csio_ln_vnp_read_cbfn()
677 csio_ln_vnp_read(struct csio_lnode *ln, in csio_ln_vnp_read() argument
680 struct csio_hw *hw = ln->hwp; in csio_ln_vnp_read()
691 csio_fcoe_vnp_read_init_mb(ln, mbp, in csio_ln_vnp_read()
693 ln->fcf_flowid, in csio_ln_vnp_read()
694 ln->vnp_flowid, in csio_ln_vnp_read()
715 csio_fcoe_enable_link(struct csio_lnode *ln, bool enable) in csio_fcoe_enable_link() argument
717 struct csio_hw *hw = ln->hwp; in csio_fcoe_enable_link()
731 portid = ln->portid; in csio_fcoe_enable_link()
737 csio_write_fcoe_link_cond_init_mb(ln, mbp, CSIO_MB_DEFAULT_TMO, in csio_fcoe_enable_link()
761 memcpy(csio_ln_wwnn(ln), lcmd->vnport_wwnn, 8); in csio_fcoe_enable_link()
762 memcpy(csio_ln_wwpn(ln), lcmd->vnport_wwpn, 8); in csio_fcoe_enable_link()
782 struct csio_lnode *ln = (struct csio_lnode *)mbp->priv; in csio_ln_read_fcf_cbfn() local
790 csio_ln_err(ln, "FCOE FCF cmd failed with ret x%x\n", in csio_ln_read_fcf_cbfn()
797 fcf_info = ln->fcfinfo; in csio_ln_read_fcf_cbfn()
828 csio_ln_read_fcf_entry(struct csio_lnode *ln, in csio_ln_read_fcf_entry() argument
831 struct csio_hw *hw = ln->hwp; in csio_ln_read_fcf_entry()
841 csio_fcoe_read_fcf_init_mb(ln, mbp, CSIO_MB_DEFAULT_TMO, in csio_ln_read_fcf_entry()
842 ln->portid, ln->fcf_flowid, cbfn); in csio_ln_read_fcf_entry()
873 struct csio_lnode *ln = NULL; in csio_handle_link_up() local
876 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_handle_link_up()
877 if (!ln) { in csio_handle_link_up()
879 ln = csio_ln_lookup_by_portid(hw, portid); in csio_handle_link_up()
880 if (!ln) { in csio_handle_link_up()
888 if (ln->vnp_flowid != CSIO_INVALID_IDX) { in csio_handle_link_up()
893 if (!ln) { in csio_handle_link_up()
901 ln->portid = portid; in csio_handle_link_up()
903 ln->vnp_flowid = vnpi; in csio_handle_link_up()
904 ln->dev_num &= ~0xFFFF; in csio_handle_link_up()
905 ln->dev_num |= vnpi; in csio_handle_link_up()
909 ln->fcf_flowid = fcfi; in csio_handle_link_up()
913 CSIO_INC_STATS(ln, n_link_up); in csio_handle_link_up()
916 csio_post_event(&ln->sm, CSIO_LNE_LINKUP); in csio_handle_link_up()
932 csio_post_event_rns(struct csio_lnode *ln, enum csio_rn_ev evt) in csio_post_event_rns() argument
934 struct csio_rnode *rnhead = (struct csio_rnode *) &ln->rnhead; in csio_post_event_rns()
954 csio_cleanup_rns(struct csio_lnode *ln) in csio_cleanup_rns() argument
956 struct csio_rnode *rnhead = (struct csio_rnode *) &ln->rnhead; in csio_cleanup_rns()
962 csio_put_rnode(ln, rn); in csio_cleanup_rns()
980 csio_post_event_lns(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_post_event_lns() argument
986 if (csio_is_npiv_ln(ln)) { in csio_post_event_lns()
987 csio_post_event(&ln->sm, evt); in csio_post_event_lns()
991 sln = ln; in csio_post_event_lns()
999 csio_post_event(&ln->sm, evt); in csio_post_event_lns()
1012 csio_ln_down(struct csio_lnode *ln) in csio_ln_down() argument
1014 csio_post_event_lns(ln, CSIO_LNE_LINK_DOWN); in csio_ln_down()
1036 struct csio_lnode *ln; in csio_handle_link_down() local
1039 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_handle_link_down()
1040 if (ln) { in csio_handle_link_down()
1041 fp = ln->fcfinfo; in csio_handle_link_down()
1042 CSIO_INC_STATS(ln, n_link_down); in csio_handle_link_down()
1045 if (!csio_is_lnode_ready(ln)) { in csio_handle_link_down()
1046 csio_ln_warn(ln, in csio_handle_link_down()
1050 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1056 csio_ln_warn(ln, in csio_handle_link_down()
1059 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1064 if (ln->fcf_flowid != fcfi) { in csio_handle_link_down()
1065 csio_ln_warn(ln, in csio_handle_link_down()
1068 CSIO_INC_STATS(ln, n_evt_drop); in csio_handle_link_down()
1075 csio_ln_down(ln); in csio_handle_link_down()
1093 csio_is_lnode_ready(struct csio_lnode *ln) in csio_is_lnode_ready() argument
1095 return (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)); in csio_is_lnode_ready()
1111 csio_lns_uninit(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_uninit() argument
1113 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_uninit()
1117 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_uninit()
1120 csio_set_state(&ln->sm, csio_lns_online); in csio_lns_uninit()
1122 if (csio_is_phys_ln(ln)) { in csio_lns_uninit()
1123 rv = csio_ln_read_fcf_entry(ln, in csio_lns_uninit()
1127 CSIO_INC_STATS(ln, n_err); in csio_lns_uninit()
1132 list_add_tail(&ln->fcfinfo->list, &rln->fcf_lsthead); in csio_lns_uninit()
1135 rv = csio_ln_vnp_read(ln, csio_ln_vnp_read_cbfn); in csio_lns_uninit()
1138 CSIO_INC_STATS(ln, n_err); in csio_lns_uninit()
1146 csio_ln_dbg(ln, in csio_lns_uninit()
1148 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_uninit()
1149 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_uninit()
1164 csio_lns_online(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_online() argument
1166 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_online()
1168 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_online()
1171 csio_ln_warn(ln, in csio_lns_online()
1173 "Ignoring linkup on port:%d\n", ln->portid); in csio_lns_online()
1174 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_online()
1178 csio_set_state(&ln->sm, csio_lns_ready); in csio_lns_online()
1181 csio_lnode_async_event(ln, CSIO_LN_FC_LINKUP); in csio_lns_online()
1189 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_online()
1190 if (csio_is_phys_ln(ln)) { in csio_lns_online()
1192 list_del_init(&ln->fcfinfo->list); in csio_lns_online()
1197 csio_ln_dbg(ln, in csio_lns_online()
1199 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_online()
1200 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_online()
1216 csio_lns_ready(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_ready() argument
1218 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_ready()
1220 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_ready()
1223 csio_ln_dbg(ln, in csio_lns_ready()
1225 "in ln state[ready].\n", evt, ln->nport_id); in csio_lns_ready()
1226 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_ready()
1230 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1231 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1234 csio_lnode_async_event(ln, CSIO_LN_FC_LINKDOWN); in csio_lns_ready()
1237 if (csio_is_phys_ln(ln)) { in csio_lns_ready()
1239 list_del_init(&ln->fcfinfo->list); in csio_lns_ready()
1244 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1245 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1251 csio_lnode_async_event(ln, CSIO_LN_FC_LINKDOWN); in csio_lns_ready()
1254 if (csio_is_phys_ln(ln)) { in csio_lns_ready()
1256 list_del_init(&ln->fcfinfo->list); in csio_lns_ready()
1261 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_ready()
1262 csio_post_event_rns(ln, CSIO_RNFE_CLOSE); in csio_lns_ready()
1266 csio_set_state(&ln->sm, csio_lns_offline); in csio_lns_ready()
1267 csio_post_event_rns(ln, CSIO_RNFE_DOWN); in csio_lns_ready()
1271 csio_ln_dbg(ln, in csio_lns_ready()
1273 "ln state[uninit].\n", evt, ln->nport_id); in csio_lns_ready()
1274 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_ready()
1290 csio_lns_offline(struct csio_lnode *ln, enum csio_ln_ev evt) in csio_lns_offline() argument
1292 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lns_offline()
1296 CSIO_INC_STATS(ln, n_evt_sm[evt]); in csio_lns_offline()
1299 csio_set_state(&ln->sm, csio_lns_online); in csio_lns_offline()
1301 if (csio_is_phys_ln(ln)) { in csio_lns_offline()
1302 rv = csio_ln_read_fcf_entry(ln, in csio_lns_offline()
1306 CSIO_INC_STATS(ln, n_err); in csio_lns_offline()
1311 list_add_tail(&ln->fcfinfo->list, &rln->fcf_lsthead); in csio_lns_offline()
1314 rv = csio_ln_vnp_read(ln, csio_ln_vnp_read_cbfn); in csio_lns_offline()
1317 CSIO_INC_STATS(ln, n_err); in csio_lns_offline()
1324 csio_ln_dbg(ln, in csio_lns_offline()
1326 "in ln state[offline].\n", evt, ln->nport_id); in csio_lns_offline()
1327 CSIO_INC_STATS(ln, n_evt_drop); in csio_lns_offline()
1331 csio_set_state(&ln->sm, csio_lns_uninit); in csio_lns_offline()
1332 csio_post_event_rns(ln, CSIO_RNFE_CLOSE); in csio_lns_offline()
1336 csio_ln_dbg(ln, in csio_lns_offline()
1338 "ln state[offline]\n", evt, ln->nport_id); in csio_lns_offline()
1339 CSIO_INC_STATS(ln, n_evt_unexp); in csio_lns_offline()
1365 csio_lnode_state_to_str(struct csio_lnode *ln, int8_t *str) in csio_lnode_state_to_str() argument
1367 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_uninit)) { in csio_lnode_state_to_str()
1371 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)) { in csio_lnode_state_to_str()
1375 if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_offline)) { in csio_lnode_state_to_str()
1483 struct csio_lnode *ln; in csio_fcoe_fwevt_handler() local
1551 ln = csio_ln_lookup_by_vnpi(hw, vnpi); in csio_fcoe_fwevt_handler()
1552 if (!ln) { in csio_fcoe_fwevt_handler()
1560 rn = csio_confirm_rnode(ln, rdev_flowid, in csio_fcoe_fwevt_handler()
1563 csio_ln_dbg(ln, in csio_fcoe_fwevt_handler()
1571 ln->prev_evt = ln->cur_evt; in csio_fcoe_fwevt_handler()
1572 ln->cur_evt = rdev_wr->event_cause; in csio_fcoe_fwevt_handler()
1573 CSIO_INC_STATS(ln, n_evt_fw[rdev_wr->event_cause]); in csio_fcoe_fwevt_handler()
1578 csio_ln_dbg(ln, in csio_fcoe_fwevt_handler()
1582 csio_post_event(&ln->sm, evt); in csio_fcoe_fwevt_handler()
1618 csio_lnode_start(struct csio_lnode *ln) in csio_lnode_start() argument
1621 if (csio_is_phys_ln(ln) && !(ln->flags & CSIO_LNF_LINK_ENABLE)) { in csio_lnode_start()
1622 rv = csio_fcoe_enable_link(ln, 1); in csio_lnode_start()
1623 ln->flags |= CSIO_LNF_LINK_ENABLE; in csio_lnode_start()
1637 csio_lnode_stop(struct csio_lnode *ln) in csio_lnode_stop() argument
1639 csio_post_event_lns(ln, CSIO_LNE_DOWN_LINK); in csio_lnode_stop()
1640 if (csio_is_phys_ln(ln) && (ln->flags & CSIO_LNF_LINK_ENABLE)) { in csio_lnode_stop()
1641 csio_fcoe_enable_link(ln, 0); in csio_lnode_stop()
1642 ln->flags &= ~CSIO_LNF_LINK_ENABLE; in csio_lnode_stop()
1644 csio_ln_dbg(ln, "stopping ln :%p\n", ln); in csio_lnode_stop()
1656 csio_lnode_close(struct csio_lnode *ln) in csio_lnode_close() argument
1658 csio_post_event_lns(ln, CSIO_LNE_CLOSE); in csio_lnode_close()
1659 if (csio_is_phys_ln(ln)) in csio_lnode_close()
1660 ln->vnp_flowid = CSIO_INVALID_IDX; in csio_lnode_close()
1662 csio_ln_dbg(ln, "closed ln :%p\n", ln); in csio_lnode_close()
1727 struct csio_lnode *ln = io_req->lnode; in csio_ln_mgmt_submit_wr() local
1761 ln->nport_id, rn->nport_id, in csio_ln_mgmt_submit_wr()
1832 csio_ln_fdmi_init(struct csio_lnode *ln) in csio_ln_fdmi_init() argument
1834 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_fdmi_init()
1838 ln->mgmt_req = kzalloc(sizeof(struct csio_ioreq), GFP_KERNEL); in csio_ln_fdmi_init()
1839 if (!ln->mgmt_req) { in csio_ln_fdmi_init()
1840 csio_ln_err(ln, "Failed to alloc ioreq for FDMI\n"); in csio_ln_fdmi_init()
1846 dma_buf = &ln->mgmt_req->dma_buf; in csio_ln_fdmi_init()
1852 kfree(ln->mgmt_req); in csio_ln_fdmi_init()
1853 ln->mgmt_req = NULL; in csio_ln_fdmi_init()
1857 ln->flags |= CSIO_LNF_FDMI_ENABLE; in csio_ln_fdmi_init()
1866 csio_ln_fdmi_exit(struct csio_lnode *ln) in csio_ln_fdmi_exit() argument
1869 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_fdmi_exit()
1871 if (!ln->mgmt_req) in csio_ln_fdmi_exit()
1874 dma_buf = &ln->mgmt_req->dma_buf; in csio_ln_fdmi_exit()
1879 kfree(ln->mgmt_req); in csio_ln_fdmi_exit()
1884 csio_scan_done(struct csio_lnode *ln, unsigned long ticks, in csio_scan_done() argument
1893 if (!ln->tgt_scan_tick) in csio_scan_done()
1894 ln->tgt_scan_tick = ticks; in csio_scan_done()
1896 if (((ticks - ln->tgt_scan_tick) >= delta_scan_ticks)) { in csio_scan_done()
1897 if (!ln->last_scan_ntgts) in csio_scan_done()
1898 ln->last_scan_ntgts = ln->n_scsi_tgts; in csio_scan_done()
1900 if (ln->last_scan_ntgts == ln->n_scsi_tgts) in csio_scan_done()
1903 ln->last_scan_ntgts = ln->n_scsi_tgts; in csio_scan_done()
1905 ln->tgt_scan_tick = ticks; in csio_scan_done()
1924 struct csio_lnode *ln; in csio_notify_lnodes() local
1930 ln = (struct csio_lnode *) tmp; in csio_notify_lnodes()
1934 csio_lnode_start(ln); in csio_notify_lnodes()
1939 csio_lnode_close(ln); in csio_notify_lnodes()
1943 csio_lnode_stop(ln); in csio_notify_lnodes()
1966 struct csio_lnode *ln; in csio_disable_lnodes() local
1972 ln = (struct csio_lnode *) tmp; in csio_disable_lnodes()
1973 if (ln->portid != portid) in csio_disable_lnodes()
1977 csio_lnode_stop(ln); in csio_disable_lnodes()
1979 csio_lnode_start(ln); in csio_disable_lnodes()
1989 csio_ln_init(struct csio_lnode *ln) in csio_ln_init() argument
1993 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_ln_init()
1995 csio_init_state(&ln->sm, csio_lns_uninit); in csio_ln_init()
1996 ln->vnp_flowid = CSIO_INVALID_IDX; in csio_ln_init()
1997 ln->fcf_flowid = CSIO_INVALID_IDX; in csio_ln_init()
1999 if (csio_is_root_ln(ln)) { in csio_ln_init()
2003 ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info), GFP_KERNEL); in csio_ln_init()
2004 if (!ln->fcfinfo) { in csio_ln_init()
2005 csio_ln_err(ln, "Failed to alloc FCF record\n"); in csio_ln_init()
2010 INIT_LIST_HEAD(&ln->fcf_lsthead); in csio_ln_init()
2011 kref_init(&ln->fcfinfo->kref); in csio_ln_init()
2013 if (csio_fdmi_enable && csio_ln_fdmi_init(ln)) in csio_ln_init()
2022 rln = csio_root_lnode(ln); in csio_ln_init()
2024 if (csio_is_npiv_ln(ln)) { in csio_ln_init()
2026 pln = csio_parent_lnode(ln); in csio_ln_init()
2028 ln->fcfinfo = pln->fcfinfo; in csio_ln_init()
2031 ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info), in csio_ln_init()
2033 if (!ln->fcfinfo) { in csio_ln_init()
2034 csio_ln_err(ln, "Failed to alloc FCF info\n"); in csio_ln_init()
2039 kref_init(&ln->fcfinfo->kref); in csio_ln_init()
2041 if (csio_fdmi_enable && csio_ln_fdmi_init(ln)) in csio_ln_init()
2053 csio_ln_exit(struct csio_lnode *ln) in csio_ln_exit() argument
2057 csio_cleanup_rns(ln); in csio_ln_exit()
2058 if (csio_is_npiv_ln(ln)) { in csio_ln_exit()
2059 pln = csio_parent_lnode(ln); in csio_ln_exit()
2062 kref_put(&ln->fcfinfo->kref, csio_free_fcfinfo); in csio_ln_exit()
2064 csio_ln_fdmi_exit(ln); in csio_ln_exit()
2066 ln->fcfinfo = NULL; in csio_ln_exit()
2075 csio_lnode_init(struct csio_lnode *ln, struct csio_hw *hw, in csio_lnode_init() argument
2081 csio_lnode_to_hw(ln) = hw; in csio_lnode_init()
2085 ln->pln = pln; in csio_lnode_init()
2087 ln->pln = NULL; in csio_lnode_init()
2090 ln->n_scsi_tgts = 0; in csio_lnode_init()
2091 ln->last_scan_ntgts = 0; in csio_lnode_init()
2092 ln->tgt_scan_tick = 0; in csio_lnode_init()
2095 INIT_LIST_HEAD(&ln->rnhead); in csio_lnode_init()
2096 INIT_LIST_HEAD(&ln->cln_head); in csio_lnode_init()
2099 ln->params.log_level = hw->params.log_level; in csio_lnode_init()
2101 if (csio_ln_init(ln)) in csio_lnode_init()
2106 list_add_tail(&ln->sm.sm_list, pln ? &pln->cln_head : &hw->sln_head); in csio_lnode_init()
2115 csio_lnode_to_hw(ln) = NULL; in csio_lnode_init()
2125 csio_lnode_exit(struct csio_lnode *ln) in csio_lnode_exit() argument
2127 struct csio_hw *hw = csio_lnode_to_hw(ln); in csio_lnode_exit()
2129 csio_ln_exit(ln); in csio_lnode_exit()
2134 list_del_init(&ln->sm.sm_list); in csio_lnode_exit()
2139 if (ln->pln) in csio_lnode_exit()
2140 ln->pln->num_vports--; in csio_lnode_exit()
2150 csio_lnode_to_hw(ln) = NULL; in csio_lnode_exit()