Lines Matching refs:vf_netdev

66 	struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
69 if (!vf_netdev)
74 dev_set_promiscuity(vf_netdev, inc);
79 dev_set_allmulti(vf_netdev, inc);
86 struct net_device *vf_netdev;
90 vf_netdev = rcu_dereference(ndev_ctx->vf_netdev);
91 if (vf_netdev) {
92 dev_uc_sync(vf_netdev, net);
93 dev_mc_sync(vf_netdev, net);
114 struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
134 if (vf_netdev) {
139 ret = dev_open(vf_netdev, NULL);
143 vf_netdev->name, ret);
200 struct net_device *vf_netdev
201 = rtnl_dereference(net_device_ctx->vf_netdev);
221 if (vf_netdev)
222 dev_close(vf_netdev);
347 struct net_device *vf_netdev;
351 vf_netdev = rcu_dereference(ndc->vf_netdev);
352 if (vf_netdev) {
353 const struct net_device_ops *vf_ops = vf_netdev->netdev_ops;
356 txq = vf_ops->ndo_select_queue(vf_netdev, skb, sb_dev);
358 txq = netdev_pick_tx(vf_netdev, skb, NULL);
497 static int netvsc_vf_xmit(struct net_device *net, struct net_device *vf_netdev,
504 skb->dev = vf_netdev;
530 struct net_device *vf_netdev;
539 vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
540 if (vf_netdev && netif_running(vf_netdev) &&
541 netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net))
542 return netvsc_vf_xmit(net, vf_netdev, skb);
1191 struct net_device *vf_netdev;
1193 vf_netdev = rtnl_dereference(ndc->vf_netdev);
1195 if (vf_netdev)
1196 return __ethtool_get_link_ksettings(vf_netdev, cmd);
1209 struct net_device *vf_netdev = rtnl_dereference(ndc->vf_netdev);
1211 if (vf_netdev) {
1212 if (!vf_netdev->ethtool_ops->set_link_ksettings)
1215 return vf_netdev->ethtool_ops->set_link_ksettings(vf_netdev,
1226 struct net_device *vf_netdev = rtnl_dereference(ndevctx->vf_netdev);
1241 if (vf_netdev) {
1242 ret = dev_set_mtu(vf_netdev, mtu);
1263 if (vf_netdev)
1264 dev_set_mtu(vf_netdev, orig_mtu);
1417 struct net_device *vf_netdev = rtnl_dereference(ndc->vf_netdev);
1429 if (vf_netdev) {
1430 err = dev_set_mac_address(vf_netdev, addr, NULL);
1438 } else if (vf_netdev) {
1441 dev_set_mac_address(vf_netdev, addr, NULL);
1935 struct net_device *vf_netdev = rtnl_dereference(ndevctx->vf_netdev);
1963 if (!vf_netdev)
1966 vf_netdev->wanted_features = features;
1967 netdev_update_features(vf_netdev);
2152 static struct net_device *get_netvsc_byref(struct net_device *vf_netdev)
2157 dev = netdev_master_upper_dev_get(vf_netdev);
2196 static int netvsc_vf_join(struct net_device *vf_netdev,
2202 ret = netdev_rx_handler_register(vf_netdev,
2205 netdev_err(vf_netdev,
2211 ret = netdev_master_upper_dev_link(vf_netdev, ndev,
2214 netdev_err(vf_netdev,
2222 call_netdevice_notifiers(NETDEV_JOIN, vf_netdev);
2224 netdev_info(vf_netdev, "joined to %s\n", ndev->name);
2228 netdev_rx_handler_unregister(vf_netdev);
2234 struct net_device *vf_netdev)
2239 ret = dev_set_mtu(vf_netdev, ndev->mtu);
2241 netdev_warn(vf_netdev,
2245 dev_change_flags(vf_netdev, ndev->flags | IFF_SLAVE, NULL);
2249 dev_uc_sync(vf_netdev, ndev);
2250 dev_mc_sync(vf_netdev, ndev);
2254 ret = dev_open(vf_netdev, NULL);
2256 netdev_warn(vf_netdev,
2269 struct net_device *vf_netdev;
2276 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
2277 if (vf_netdev)
2278 __netvsc_vf_setup(ndev, vf_netdev);
2286 static struct net_device *get_netvsc_byslot(const struct net_device *vf_netdev)
2288 struct device *parent = vf_netdev->dev.parent;
2299 netdev_notice(vf_netdev, "no PCI slot information\n");
2304 netdev_notice(vf_netdev, "Invalid vf serial:%s\n",
2318 * Because this function can be called before vf_netdev is
2326 if (ether_addr_equal(vf_netdev->perm_addr, ndev->perm_addr) ||
2327 ether_addr_equal(vf_netdev->dev_addr, ndev->perm_addr))
2331 netdev_notice(vf_netdev,
2336 static int netvsc_prepare_bonding(struct net_device *vf_netdev)
2340 ndev = get_netvsc_byslot(vf_netdev);
2345 vf_netdev->flags |= IFF_SLAVE;
2349 static int netvsc_register_vf(struct net_device *vf_netdev)
2357 if (vf_netdev->addr_len != ETH_ALEN)
2360 ndev = get_netvsc_byslot(vf_netdev);
2366 if (!netvsc_dev || rtnl_dereference(net_device_ctx->vf_netdev))
2373 if (!net_eq(dev_net(ndev), dev_net(vf_netdev))) {
2374 ret = dev_change_net_namespace(vf_netdev,
2377 netdev_err(vf_netdev,
2381 netdev_info(vf_netdev,
2387 netdev_info(ndev, "VF registering: %s\n", vf_netdev->name);
2389 if (netvsc_vf_join(vf_netdev, ndev) != 0)
2392 dev_hold(vf_netdev);
2393 rcu_assign_pointer(net_device_ctx->vf_netdev, vf_netdev);
2395 vf_netdev->wanted_features = ndev->features;
2396 netdev_update_features(vf_netdev);
2399 netvsc_vf_setxdp(vf_netdev, prog);
2414 static int netvsc_vf_changed(struct net_device *vf_netdev)
2419 bool vf_is_up = netif_running(vf_netdev);
2421 ndev = get_netvsc_byref(vf_netdev);
2441 vf_is_up ? "to" : "from", vf_netdev->name);
2446 static int netvsc_unregister_vf(struct net_device *vf_netdev)
2451 ndev = get_netvsc_byref(vf_netdev);
2458 netdev_info(ndev, "VF unregistering: %s\n", vf_netdev->name);
2460 netvsc_vf_setxdp(vf_netdev, NULL);
2463 netdev_rx_handler_unregister(vf_netdev);
2464 netdev_upper_dev_unlink(vf_netdev, ndev);
2465 RCU_INIT_POINTER(net_device_ctx->vf_netdev, NULL);
2466 dev_put(vf_netdev);
2604 struct net_device *vf_netdev, *net;
2628 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
2629 if (vf_netdev)
2630 netvsc_unregister_vf(vf_netdev);