Lines Matching refs:fcoe
302 static int fcoe_interface_setup(struct fcoe_interface *fcoe, in fcoe_interface_setup() argument
305 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_setup()
311 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 = __constant_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()
391 struct fcoe_interface *fcoe; in fcoe_interface_create() local
398 fcoe = ERR_PTR(-EBUSY); in fcoe_interface_create()
407 fcoe = ERR_PTR(-ENOMEM); in fcoe_interface_create()
413 fcoe = fcoe_ctlr_priv(ctlr); in fcoe_interface_create()
425 err = fcoe_interface_setup(fcoe, netdev); in fcoe_interface_create()
430 fcoe = ERR_PTR(err); in fcoe_interface_create()
439 return fcoe; in fcoe_interface_create()
448 static void fcoe_interface_remove(struct fcoe_interface *fcoe) in fcoe_interface_remove() argument
450 struct net_device *netdev = fcoe->netdev; in fcoe_interface_remove()
451 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_remove()
461 __dev_remove_pack(&fcoe->fcoe_packet_type); in fcoe_interface_remove()
462 __dev_remove_pack(&fcoe->fip_packet_type); in fcoe_interface_remove()
483 fcoe->removed = 1; in fcoe_interface_remove()
491 static void fcoe_interface_cleanup(struct fcoe_interface *fcoe) in fcoe_interface_cleanup() argument
493 struct net_device *netdev = fcoe->netdev; in fcoe_interface_cleanup()
494 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_interface_cleanup()
497 if (!fcoe->removed) in fcoe_interface_cleanup()
498 fcoe_interface_remove(fcoe); in fcoe_interface_cleanup()
523 struct fcoe_interface *fcoe; in fcoe_fip_recv() local
526 fcoe = container_of(ptype, struct fcoe_interface, fip_packet_type); in fcoe_fip_recv()
527 ctlr = fcoe_to_ctlr(fcoe); in fcoe_fip_recv()
567 struct fcoe_interface *fcoe = port->priv; in fcoe_update_src_mac() local
570 dev_uc_del(fcoe->netdev, port->data_src_addr); in fcoe_update_src_mac()
572 dev_uc_add(fcoe->netdev, addr); in fcoe_update_src_mac()
677 struct fcoe_interface *fcoe; in fcoe_netdev_config() local
683 fcoe = port->priv; in fcoe_netdev_config()
684 ctlr = fcoe_to_ctlr(fcoe); in fcoe_netdev_config()
775 struct fcoe_interface *fcoe; in fcoe_fdmi_info() local
781 fcoe = port->priv; in fcoe_fdmi_info()
782 realdev = fcoe->realdev; in fcoe_fdmi_info()
893 struct fcoe_interface *fcoe = port->priv; in fcoe_em_config() local
913 if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN) in fcoe_em_config()
914 cur_real_dev = vlan_dev_real_dev(fcoe->netdev); in fcoe_em_config()
916 cur_real_dev = fcoe->netdev; in fcoe_em_config()
925 fcoe->oem = oldfcoe->oem; in fcoe_em_config()
930 if (fcoe->oem) { in fcoe_em_config()
931 if (!fc_exch_mgr_add(lport, fcoe->oem, fcoe_oem_match)) { in fcoe_em_config()
934 fcoe->oem, fcoe->netdev->name); in fcoe_em_config()
938 fcoe->oem = fc_exch_mgr_alloc(lport, FC_CLASS_3, in fcoe_em_config()
941 if (!fcoe->oem) { in fcoe_em_config()
944 fcoe->netdev->name); in fcoe_em_config()
957 "allocate em on interface %s\n", fcoe->netdev->name); in fcoe_em_config()
972 struct fcoe_interface *fcoe = port->priv; in fcoe_if_destroy() local
973 struct net_device *netdev = fcoe->netdev; in fcoe_if_destroy()
995 fcoe_interface_remove(fcoe); in fcoe_if_destroy()
1092 static struct fc_lport *fcoe_if_create(struct fcoe_interface *fcoe, in fcoe_if_create() argument
1095 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_if_create()
1096 struct net_device *netdev = fcoe->netdev; in fcoe_if_create()
1121 port->priv = fcoe; in fcoe_if_create()
1435 struct fcoe_interface *fcoe; in fcoe_rcv() local
1441 fcoe = container_of(ptype, struct fcoe_interface, fcoe_packet_type); in fcoe_rcv()
1442 ctlr = fcoe_to_ctlr(fcoe); in fcoe_rcv()
1599 struct fcoe_interface *fcoe = port->priv; in fcoe_xmit() local
1600 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_xmit()
1667 skb->priority = fcoe->priority; in fcoe_xmit()
1669 if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN && in fcoe_xmit()
1670 fcoe->realdev->features & NETIF_F_HW_VLAN_CTAG_TX) { in fcoe_xmit()
1672 skb->dev = fcoe->realdev; in fcoe_xmit()
1674 vlan_dev_vlan_id(fcoe->netdev)); in fcoe_xmit()
1676 skb->dev = fcoe->netdev; in fcoe_xmit()
1736 struct fcoe_interface *fcoe; in fcoe_filter_frames() local
1756 fcoe = ((struct fcoe_port *)lport_priv(lport))->priv; in fcoe_filter_frames()
1757 ctlr = fcoe_to_ctlr(fcoe); in fcoe_filter_frames()
1919 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup_realdev_port() local
1922 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_hostlist_lookup_realdev_port()
1923 if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN) in fcoe_hostlist_lookup_realdev_port()
1924 real_dev = vlan_dev_real_dev(fcoe->netdev); in fcoe_hostlist_lookup_realdev_port()
1926 real_dev = fcoe->netdev; in fcoe_hostlist_lookup_realdev_port()
1929 return fcoe; in fcoe_hostlist_lookup_realdev_port()
1939 struct fcoe_interface *fcoe; in fcoe_dcb_app_notification() local
1950 fcoe = fcoe_hostlist_lookup_realdev_port(netdev); in fcoe_dcb_app_notification()
1952 if (!fcoe) in fcoe_dcb_app_notification()
1955 ctlr = fcoe_to_ctlr(fcoe); in fcoe_dcb_app_notification()
1970 fcoe->priority = prio; in fcoe_dcb_app_notification()
1992 struct fcoe_interface *fcoe; in fcoe_device_notification() local
1999 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_device_notification()
2000 if (fcoe->netdev == netdev) { in fcoe_device_notification()
2001 ctlr = fcoe_to_ctlr(fcoe); in fcoe_device_notification()
2030 list_del(&fcoe->list); in fcoe_device_notification()
2086 struct fcoe_interface *fcoe; in fcoe_disable() local
2092 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_disable()
2095 if (fcoe) { in fcoe_disable()
2096 ctlr = fcoe_to_ctlr(fcoe); in fcoe_disable()
2117 struct fcoe_interface *fcoe; in fcoe_enable() local
2122 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_enable()
2125 if (!fcoe) { in fcoe_enable()
2130 ctlr = fcoe_to_ctlr(fcoe); in fcoe_enable()
2178 struct fcoe_interface *fcoe; in fcoe_destroy() local
2185 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_destroy()
2186 if (!fcoe) { in fcoe_destroy()
2190 ctlr = fcoe_to_ctlr(fcoe); in fcoe_destroy()
2193 list_del(&fcoe->list); in fcoe_destroy()
2210 struct fcoe_interface *fcoe; in fcoe_destroy_work() local
2238 fcoe = port->priv; in fcoe_destroy_work()
2239 ctlr = fcoe_to_ctlr(fcoe); in fcoe_destroy_work()
2243 fcoe_interface_cleanup(fcoe); in fcoe_destroy_work()
2270 static void fcoe_dcb_create(struct fcoe_interface *fcoe) in fcoe_dcb_create() argument
2275 struct net_device *netdev = fcoe->realdev; in fcoe_dcb_create()
2276 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_dcb_create()
2298 fcoe->priority = ffs(up) ? ffs(up) - 1 : 0; in fcoe_dcb_create()
2299 ctlr->priority = ffs(fup) ? ffs(fup) - 1 : fcoe->priority; in fcoe_dcb_create()
2328 struct fcoe_interface *fcoe; in _fcoe_create() local
2340 fcoe = fcoe_interface_create(netdev, fip_mode); in _fcoe_create()
2341 if (IS_ERR(fcoe)) { in _fcoe_create()
2342 rc = PTR_ERR(fcoe); in _fcoe_create()
2346 ctlr = fcoe_to_ctlr(fcoe); in _fcoe_create()
2348 lport = fcoe_if_create(fcoe, &ctlr_dev->dev, 0); in _fcoe_create()
2354 fcoe_interface_cleanup(fcoe); in _fcoe_create()
2364 fcoe_dcb_create(fcoe); in _fcoe_create()
2498 struct fcoe_interface *fcoe = port->priv; in fcoe_reset() local
2499 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_reset()
2522 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup_port() local
2524 list_for_each_entry(fcoe, &fcoe_hostlist, list) { in fcoe_hostlist_lookup_port()
2525 if (fcoe->netdev == netdev) in fcoe_hostlist_lookup_port()
2526 return fcoe; in fcoe_hostlist_lookup_port()
2543 struct fcoe_interface *fcoe; in fcoe_hostlist_lookup() local
2545 fcoe = fcoe_hostlist_lookup_port(netdev); in fcoe_hostlist_lookup()
2546 ctlr = fcoe_to_ctlr(fcoe); in fcoe_hostlist_lookup()
2547 return (fcoe) ? ctlr->lp : NULL; in fcoe_hostlist_lookup()
2561 struct fcoe_interface *fcoe; in fcoe_hostlist_add() local
2564 fcoe = fcoe_hostlist_lookup_port(fcoe_netdev(lport)); in fcoe_hostlist_add()
2565 if (!fcoe) { in fcoe_hostlist_add()
2567 fcoe = port->priv; in fcoe_hostlist_add()
2568 list_add_tail(&fcoe->list, &fcoe_hostlist); in fcoe_hostlist_add()
2583 struct fcoe_interface *fcoe; in fcoe_hostlist_del() local
2587 fcoe = port->priv; in fcoe_hostlist_del()
2588 list_del(&fcoe->list); in fcoe_hostlist_del()
2676 struct fcoe_interface *fcoe, *tmp; in fcoe_exit() local
2687 list_for_each_entry_safe(fcoe, tmp, &fcoe_hostlist, list) { in fcoe_exit()
2688 ctlr = fcoe_to_ctlr(fcoe); in fcoe_exit()
2789 struct fcoe_interface *fcoe = port->priv; in fcoe_elsct_send() local
2790 struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe); in fcoe_elsct_send()
2822 struct fcoe_interface *fcoe = port->priv; in fcoe_vport_create() local
2823 struct net_device *netdev = fcoe->netdev; in fcoe_vport_create()
2839 vn_port = fcoe_if_create(fcoe, &vport->dev, 1); in fcoe_vport_create()
2939 struct fcoe_interface *fcoe = fcoe_ctlr_priv(ctlr); in fcoe_fcf_get_vlan_id() local
2941 fcf_dev->vlan_id = vlan_dev_vlan_id(fcoe->netdev); in fcoe_fcf_get_vlan_id()
2960 struct fcoe_interface *fcoe = port->priv; in fcoe_set_port_id() local
2961 struct fcoe_ctlr *ctlr = fcoe_to_ctlr(fcoe); in fcoe_set_port_id()