Lines Matching refs:vf_netdev

76 	struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);  in netvsc_change_rx_flags()  local
79 if (!vf_netdev) in netvsc_change_rx_flags()
84 dev_set_promiscuity(vf_netdev, inc); in netvsc_change_rx_flags()
89 dev_set_allmulti(vf_netdev, inc); in netvsc_change_rx_flags()
96 struct net_device *vf_netdev; in netvsc_set_rx_mode() local
100 vf_netdev = rcu_dereference(ndev_ctx->vf_netdev); in netvsc_set_rx_mode()
101 if (vf_netdev) { in netvsc_set_rx_mode()
102 dev_uc_sync(vf_netdev, net); in netvsc_set_rx_mode()
103 dev_mc_sync(vf_netdev, net); in netvsc_set_rx_mode()
115 struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev); in netvsc_open() local
135 if (vf_netdev) { in netvsc_open()
140 ret = dev_open(vf_netdev); in netvsc_open()
144 vf_netdev->name, ret); in netvsc_open()
190 struct net_device *vf_netdev in netvsc_close() local
191 = rtnl_dereference(net_device_ctx->vf_netdev); in netvsc_close()
211 if (vf_netdev) in netvsc_close()
212 dev_close(vf_netdev); in netvsc_close()
337 struct net_device *vf_netdev; in netvsc_select_queue() local
341 vf_netdev = rcu_dereference(ndc->vf_netdev); in netvsc_select_queue()
342 if (vf_netdev) { in netvsc_select_queue()
343 const struct net_device_ops *vf_ops = vf_netdev->netdev_ops; in netvsc_select_queue()
346 txq = vf_ops->ndo_select_queue(vf_netdev, skb, in netvsc_select_queue()
349 txq = fallback(vf_netdev, skb, NULL); in netvsc_select_queue()
488 static int netvsc_vf_xmit(struct net_device *net, struct net_device *vf_netdev, in netvsc_vf_xmit() argument
495 skb->dev = vf_netdev; in netvsc_vf_xmit()
521 struct net_device *vf_netdev; in netvsc_start_xmit() local
529 vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev); in netvsc_start_xmit()
530 if (vf_netdev && netif_running(vf_netdev) && in netvsc_start_xmit()
532 return netvsc_vf_xmit(net, vf_netdev, skb); in netvsc_start_xmit()
1044 struct net_device *vf_netdev = rtnl_dereference(ndevctx->vf_netdev); in netvsc_change_mtu() local
1054 if (vf_netdev) { in netvsc_change_mtu()
1055 ret = dev_set_mtu(vf_netdev, mtu); in netvsc_change_mtu()
1086 if (vf_netdev) in netvsc_change_mtu()
1087 dev_set_mtu(vf_netdev, orig_mtu); in netvsc_change_mtu()
1233 struct net_device *vf_netdev = rtnl_dereference(ndc->vf_netdev); in netvsc_set_mac_addr() local
1245 if (vf_netdev) { in netvsc_set_mac_addr()
1246 err = dev_set_mac_address(vf_netdev, addr); in netvsc_set_mac_addr()
1254 } else if (vf_netdev) { in netvsc_set_mac_addr()
1257 dev_set_mac_address(vf_netdev, addr); in netvsc_set_mac_addr()
1897 static struct net_device *get_netvsc_byref(struct net_device *vf_netdev) in get_netvsc_byref() argument
1902 dev = netdev_master_upper_dev_get(vf_netdev); in get_netvsc_byref()
1935 static int netvsc_vf_join(struct net_device *vf_netdev, in netvsc_vf_join() argument
1941 ret = netdev_rx_handler_register(vf_netdev, in netvsc_vf_join()
1944 netdev_err(vf_netdev, in netvsc_vf_join()
1950 ret = netdev_master_upper_dev_link(vf_netdev, ndev, in netvsc_vf_join()
1953 netdev_err(vf_netdev, in netvsc_vf_join()
1960 vf_netdev->flags |= IFF_SLAVE; in netvsc_vf_join()
1964 call_netdevice_notifiers(NETDEV_JOIN, vf_netdev); in netvsc_vf_join()
1966 netdev_info(vf_netdev, "joined to %s\n", ndev->name); in netvsc_vf_join()
1970 netdev_rx_handler_unregister(vf_netdev); in netvsc_vf_join()
1976 struct net_device *vf_netdev) in __netvsc_vf_setup() argument
1981 ret = dev_set_mtu(vf_netdev, ndev->mtu); in __netvsc_vf_setup()
1983 netdev_warn(vf_netdev, in __netvsc_vf_setup()
1987 dev_change_flags(vf_netdev, ndev->flags | IFF_SLAVE); in __netvsc_vf_setup()
1991 dev_uc_sync(vf_netdev, ndev); in __netvsc_vf_setup()
1992 dev_mc_sync(vf_netdev, ndev); in __netvsc_vf_setup()
1996 ret = dev_open(vf_netdev); in __netvsc_vf_setup()
1998 netdev_warn(vf_netdev, in __netvsc_vf_setup()
2011 struct net_device *vf_netdev; in netvsc_vf_setup() local
2018 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev); in netvsc_vf_setup()
2019 if (vf_netdev) in netvsc_vf_setup()
2020 __netvsc_vf_setup(ndev, vf_netdev); in netvsc_vf_setup()
2028 static struct net_device *get_netvsc_byslot(const struct net_device *vf_netdev) in get_netvsc_byslot() argument
2030 struct device *parent = vf_netdev->dev.parent; in get_netvsc_byslot()
2039 netdev_notice(vf_netdev, "no PCI slot information\n"); in get_netvsc_byslot()
2051 netdev_notice(vf_netdev, in get_netvsc_byslot()
2056 static int netvsc_register_vf(struct net_device *vf_netdev) in netvsc_register_vf() argument
2063 if (vf_netdev->addr_len != ETH_ALEN) in netvsc_register_vf()
2066 ndev = get_netvsc_byslot(vf_netdev); in netvsc_register_vf()
2072 if (!netvsc_dev || rtnl_dereference(net_device_ctx->vf_netdev)) in netvsc_register_vf()
2079 if (!net_eq(dev_net(ndev), dev_net(vf_netdev))) { in netvsc_register_vf()
2080 ret = dev_change_net_namespace(vf_netdev, in netvsc_register_vf()
2083 netdev_err(vf_netdev, in netvsc_register_vf()
2087 netdev_info(vf_netdev, in netvsc_register_vf()
2093 netdev_info(ndev, "VF registering: %s\n", vf_netdev->name); in netvsc_register_vf()
2095 if (netvsc_vf_join(vf_netdev, ndev) != 0) in netvsc_register_vf()
2098 dev_hold(vf_netdev); in netvsc_register_vf()
2099 rcu_assign_pointer(net_device_ctx->vf_netdev, vf_netdev); in netvsc_register_vf()
2104 static int netvsc_vf_changed(struct net_device *vf_netdev) in netvsc_vf_changed() argument
2109 bool vf_is_up = netif_running(vf_netdev); in netvsc_vf_changed()
2111 ndev = get_netvsc_byref(vf_netdev); in netvsc_vf_changed()
2122 vf_is_up ? "to" : "from", vf_netdev->name); in netvsc_vf_changed()
2127 static int netvsc_unregister_vf(struct net_device *vf_netdev) in netvsc_unregister_vf() argument
2132 ndev = get_netvsc_byref(vf_netdev); in netvsc_unregister_vf()
2139 netdev_info(ndev, "VF unregistering: %s\n", vf_netdev->name); in netvsc_unregister_vf()
2141 netdev_rx_handler_unregister(vf_netdev); in netvsc_unregister_vf()
2142 netdev_upper_dev_unlink(vf_netdev, ndev); in netvsc_unregister_vf()
2143 RCU_INIT_POINTER(net_device_ctx->vf_netdev, NULL); in netvsc_unregister_vf()
2144 dev_put(vf_netdev); in netvsc_unregister_vf()
2270 struct net_device *vf_netdev, *net; in netvsc_remove() local
2292 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev); in netvsc_remove()
2293 if (vf_netdev) in netvsc_remove()
2294 netvsc_unregister_vf(vf_netdev); in netvsc_remove()