Lines Matching refs:fcoe
303 static int fcoe_interface_setup(struct fcoe_interface *fcoe, in fcoe_interface_setup() argument
306 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_setup()
312 fcoe->netdev = netdev; in fcoe_interface_setup()
331 fcoe->realdev = real_dev; in fcoe_interface_setup()
366 fcoe->fcoe_packet_type.func = fcoe_rcv; in fcoe_interface_setup()
367 fcoe->fcoe_packet_type.type = htons(ETH_P_FCOE); in fcoe_interface_setup()
368 fcoe->fcoe_packet_type.dev = netdev; in fcoe_interface_setup()
369 dev_add_pack(&fcoe->fcoe_packet_type); in fcoe_interface_setup()
371 fcoe->fip_packet_type.func = fcoe_fip_recv; in fcoe_interface_setup()
372 fcoe->fip_packet_type.type = htons(ETH_P_FIP); in fcoe_interface_setup()
373 fcoe->fip_packet_type.dev = netdev; in fcoe_interface_setup()
374 dev_add_pack(&fcoe->fip_packet_type); in fcoe_interface_setup()
377 fcoe->fip_vlan_packet_type.func = fcoe_fip_vlan_recv; in fcoe_interface_setup()
378 fcoe->fip_vlan_packet_type.type = htons(ETH_P_FIP); in fcoe_interface_setup()
379 fcoe->fip_vlan_packet_type.dev = real_dev; in fcoe_interface_setup()
380 dev_add_pack(&fcoe->fip_vlan_packet_type); in fcoe_interface_setup()
397 struct fcoe_interface *fcoe; in fcoe_interface_create() local
404 fcoe = ERR_PTR(-EBUSY); in fcoe_interface_create()
413 fcoe = ERR_PTR(-ENOMEM); in fcoe_interface_create()
419 fcoe = fcoe_ctlr_priv(ctlr); in fcoe_interface_create()
431 err = fcoe_interface_setup(fcoe, netdev); in fcoe_interface_create()
436 fcoe = ERR_PTR(err); in fcoe_interface_create()
445 return fcoe; in fcoe_interface_create()
454 static void fcoe_interface_remove(struct fcoe_interface *fcoe) in fcoe_interface_remove() argument
456 struct net_device *netdev = fcoe->netdev; in fcoe_interface_remove()
457 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_remove()
467 __dev_remove_pack(&fcoe->fcoe_packet_type); in fcoe_interface_remove()
468 __dev_remove_pack(&fcoe->fip_packet_type); in fcoe_interface_remove()
469 if (netdev != fcoe->realdev) in fcoe_interface_remove()
470 __dev_remove_pack(&fcoe->fip_vlan_packet_type); in fcoe_interface_remove()
491 fcoe->removed = 1; in fcoe_interface_remove()
499 static void fcoe_interface_cleanup(struct fcoe_interface *fcoe) in fcoe_interface_cleanup() argument
501 struct net_device *netdev = fcoe->netdev; in fcoe_interface_cleanup()
502 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_cleanup()
526 struct fcoe_interface *fcoe; in fcoe_fip_recv() local
529 fcoe = container_of(ptype, struct fcoe_interface, fip_packet_type); in fcoe_fip_recv()
530 ctlr = fcoe_to_ctlr(fcoe); in fcoe_fip_recv()
549 struct fcoe_interface *fcoe; in fcoe_fip_vlan_recv() local
552 fcoe = container_of(ptype, struct fcoe_interface, fip_vlan_packet_type); in fcoe_fip_vlan_recv()
553 ctlr = fcoe_to_ctlr(fcoe); in fcoe_fip_vlan_recv()
578 struct fcoe_interface *fcoe = fcoe_from_ctlr(fip); in fcoe_fip_send() local
590 fcoe->realdev != fcoe->netdev) in fcoe_fip_send()
591 skb->dev = fcoe->realdev; in fcoe_fip_send()
593 skb->dev = fcoe->netdev; in fcoe_fip_send()
608 struct fcoe_interface *fcoe = port->priv; in fcoe_update_src_mac() local
611 dev_uc_del(fcoe->netdev, port->data_src_addr); in fcoe_update_src_mac()
613 dev_uc_add(fcoe->netdev, addr); in fcoe_update_src_mac()
718 struct fcoe_interface *fcoe; in fcoe_netdev_config() local
724 fcoe = port->priv; in fcoe_netdev_config()
725 ctlr = fcoe_to_ctlr(fcoe); in fcoe_netdev_config()
822 struct fcoe_interface *fcoe; in fcoe_fdmi_info() local
828 fcoe = port->priv; in fcoe_fdmi_info()
829 realdev = fcoe->realdev; in fcoe_fdmi_info()
937 struct fcoe_interface *fcoe = port->priv; in fcoe_em_config() local
957 if (is_vlan_dev(fcoe->netdev)) in fcoe_em_config()
958 cur_real_dev = vlan_dev_real_dev(fcoe->netdev); in fcoe_em_config()
960 cur_real_dev = fcoe->netdev; in fcoe_em_config()
969 fcoe->oem = oldfcoe->oem; in fcoe_em_config()
974 if (fcoe->oem) { in fcoe_em_config()
975 if (!fc_exch_mgr_add(lport, fcoe->oem, fcoe_oem_match)) { in fcoe_em_config()
978 fcoe->oem, fcoe->netdev->name); in fcoe_em_config()
982 fcoe->oem = fc_exch_mgr_alloc(lport, FC_CLASS_3, in fcoe_em_config()
985 if (!fcoe->oem) { in fcoe_em_config()
988 fcoe->netdev->name); in fcoe_em_config()
1001 "allocate em on interface %s\n", fcoe->netdev->name); in fcoe_em_config()
1018 struct fcoe_interface *fcoe = port->priv; in fcoe_if_destroy() local
1019 struct net_device *netdev = fcoe->netdev; in fcoe_if_destroy()
1040 fcoe_interface_remove(fcoe); in fcoe_if_destroy()
1136 static struct fc_lport *fcoe_if_create(struct fcoe_interface *fcoe, in fcoe_if_create() argument
1139 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_if_create()
1140 struct net_device *netdev = fcoe->netdev; in fcoe_if_create()
1165 port->priv = fcoe; in fcoe_if_create()
1348 struct fcoe_interface *fcoe; in fcoe_rcv() local
1354 fcoe = container_of(ptype, struct fcoe_interface, fcoe_packet_type); in fcoe_rcv()
1355 ctlr = fcoe_to_ctlr(fcoe); in fcoe_rcv()
1491 struct fcoe_interface *fcoe = port->priv; in fcoe_xmit() local
1492 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_xmit()
1559 skb->priority = fcoe->priority; in fcoe_xmit()
1561 if (is_vlan_dev(fcoe->netdev) && in fcoe_xmit()
1562 fcoe->realdev->features & NETIF_F_HW_VLAN_CTAG_TX) { in fcoe_xmit()
1564 skb->dev = fcoe->realdev; in fcoe_xmit()
1566 vlan_dev_vlan_id(fcoe->netdev)); in fcoe_xmit()
1568 skb->dev = fcoe->netdev; in fcoe_xmit()
1619 struct fcoe_interface *fcoe; in fcoe_filter_frames() local
1639 fcoe = ((struct fcoe_port *)lport_priv(lport))->priv; in fcoe_filter_frames()
1640 ctlr = fcoe_to_ctlr(fcoe); in fcoe_filter_frames()
1788 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup_realdev_port() local
1791 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_hostlist_lookup_realdev_port()
1792 if (is_vlan_dev(fcoe->netdev)) in fcoe_hostlist_lookup_realdev_port()
1793 real_dev = vlan_dev_real_dev(fcoe->netdev); in fcoe_hostlist_lookup_realdev_port()
1795 real_dev = fcoe->netdev; in fcoe_hostlist_lookup_realdev_port()
1798 return fcoe; in fcoe_hostlist_lookup_realdev_port()
1808 struct fcoe_interface *fcoe; in fcoe_dcb_app_notification() local
1819 fcoe = fcoe_hostlist_lookup_realdev_port(netdev); in fcoe_dcb_app_notification()
1821 if (!fcoe) in fcoe_dcb_app_notification()
1824 ctlr = fcoe_to_ctlr(fcoe); in fcoe_dcb_app_notification()
1839 fcoe->priority = prio; in fcoe_dcb_app_notification()
1861 struct fcoe_interface *fcoe; in fcoe_device_notification() local
1868 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_device_notification()
1869 if (fcoe->netdev == netdev) { in fcoe_device_notification()
1870 ctlr = fcoe_to_ctlr(fcoe); in fcoe_device_notification()
1899 list_del(&fcoe->list); in fcoe_device_notification()
1904 if (!fcoe->removed) in fcoe_device_notification()
1905 fcoe_interface_remove(fcoe); in fcoe_device_notification()
1906 fcoe_interface_cleanup(fcoe); in fcoe_device_notification()
1962 struct fcoe_interface *fcoe; in fcoe_disable() local
1968 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_disable()
1971 if (fcoe) { in fcoe_disable()
1972 ctlr = fcoe_to_ctlr(fcoe); in fcoe_disable()
1993 struct fcoe_interface *fcoe; in fcoe_enable() local
1998 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_enable()
2001 if (!fcoe) { in fcoe_enable()
2006 ctlr = fcoe_to_ctlr(fcoe); in fcoe_enable()
2054 struct fcoe_interface *fcoe = fcoe_ctlr_priv(ctlr); in fcoe_ctlr_mode() local
2058 dev_mc_del(fcoe->netdev, FIP_ALL_ENODE_MACS); in fcoe_ctlr_mode()
2059 dev_mc_add(fcoe->netdev, FIP_ALL_VN2VN_MACS); in fcoe_ctlr_mode()
2060 dev_mc_add(fcoe->netdev, FIP_ALL_P2P_MACS); in fcoe_ctlr_mode()
2062 dev_mc_del(fcoe->netdev, FIP_ALL_VN2VN_MACS); in fcoe_ctlr_mode()
2063 dev_mc_del(fcoe->netdev, FIP_ALL_P2P_MACS); in fcoe_ctlr_mode()
2064 dev_mc_add(fcoe->netdev, FIP_ALL_ENODE_MACS); in fcoe_ctlr_mode()
2080 struct fcoe_interface *fcoe; in fcoe_destroy() local
2087 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_destroy()
2088 if (!fcoe) { in fcoe_destroy()
2092 ctlr = fcoe_to_ctlr(fcoe); in fcoe_destroy()
2095 list_del(&fcoe->list); in fcoe_destroy()
2112 struct fcoe_interface *fcoe; in fcoe_destroy_work() local
2120 fcoe = port->priv; in fcoe_destroy_work()
2121 ctlr = fcoe_to_ctlr(fcoe); in fcoe_destroy_work()
2126 if (!fcoe->removed) in fcoe_destroy_work()
2127 fcoe_interface_remove(fcoe); in fcoe_destroy_work()
2129 fcoe_interface_cleanup(fcoe); in fcoe_destroy_work()
2156 static void fcoe_dcb_create(struct fcoe_interface *fcoe) in fcoe_dcb_create() argument
2160 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_dcb_create()
2164 struct net_device *netdev = fcoe->realdev; in fcoe_dcb_create()
2190 fcoe->priority = fcoe_prio; in fcoe_dcb_create()
2218 struct fcoe_interface *fcoe; in _fcoe_create() local
2230 fcoe = fcoe_interface_create(netdev, fip_mode); in _fcoe_create()
2231 if (IS_ERR(fcoe)) { in _fcoe_create()
2232 rc = PTR_ERR(fcoe); in _fcoe_create()
2236 ctlr = fcoe_to_ctlr(fcoe); in _fcoe_create()
2238 lport = fcoe_if_create(fcoe, &ctlr_dev->dev, 0); in _fcoe_create()
2243 if (!fcoe->removed) in _fcoe_create()
2244 fcoe_interface_remove(fcoe); in _fcoe_create()
2246 fcoe_interface_cleanup(fcoe); in _fcoe_create()
2256 fcoe_dcb_create(fcoe); in _fcoe_create()
2373 struct fcoe_interface *fcoe = port->priv; in fcoe_reset() local
2374 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_reset()
2397 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup_port() local
2399 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_hostlist_lookup_port()
2400 if (fcoe->netdev == netdev) in fcoe_hostlist_lookup_port()
2401 return fcoe; in fcoe_hostlist_lookup_port()
2418 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup() local
2420 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_hostlist_lookup()
2421 ctlr = fcoe_to_ctlr(fcoe); in fcoe_hostlist_lookup()
2422 return (fcoe) ? ctlr->lp : NULL; in fcoe_hostlist_lookup()
2436 struct fcoe_interface *fcoe; in fcoe_hostlist_add() local
2439 fcoe = fcoe_hostlist_lookup_port(fcoe_netdev(lport)); in fcoe_hostlist_add()
2440 if (!fcoe) { in fcoe_hostlist_add()
2442 fcoe = port->priv; in fcoe_hostlist_add()
2443 list_add_tail(&fcoe->list, &fcoe_hostlist); in fcoe_hostlist_add()
2458 struct fcoe_interface *fcoe; in fcoe_hostlist_del() local
2462 fcoe = port->priv; in fcoe_hostlist_del()
2463 list_del(&fcoe->list); in fcoe_hostlist_del()
2535 struct fcoe_interface *fcoe, *tmp; in fcoe_exit() local
2546 list_for_each_entry_safe(fcoe, tmp, &fcoe_hostlist, list) { in fcoe_exit()
2547 ctlr = fcoe_to_ctlr(fcoe); in fcoe_exit()
2642 struct fcoe_interface *fcoe = port->priv; in fcoe_elsct_send() local
2643 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_elsct_send()
2675 struct fcoe_interface *fcoe = port->priv; in fcoe_vport_create() local
2676 struct net_device *netdev = fcoe->netdev; in fcoe_vport_create()
2692 vn_port = fcoe_if_create(fcoe, &vport->dev, 1); in fcoe_vport_create()
2825 struct fcoe_interface *fcoe = fcoe_ctlr_priv(ctlr); in fcoe_fcf_get_vlan_id() local
2827 fcf_dev->vlan_id = vlan_dev_vlan_id(fcoe->netdev); in fcoe_fcf_get_vlan_id()
2846 struct fcoe_interface *fcoe = port->priv; in fcoe_set_port_id() local
2847 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_set_port_id()