Lines Matching refs:vf_netdev

68 	struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
71 if (!vf_netdev)
76 dev_set_promiscuity(vf_netdev, inc);
81 dev_set_allmulti(vf_netdev, inc);
88 struct net_device *vf_netdev;
92 vf_netdev = rcu_dereference(ndev_ctx->vf_netdev);
93 if (vf_netdev) {
94 dev_uc_sync(vf_netdev, net);
95 dev_mc_sync(vf_netdev, net);
116 struct net_device *vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
136 if (vf_netdev) {
141 ret = dev_open(vf_netdev, NULL);
145 vf_netdev->name, ret);
202 struct net_device *vf_netdev
203 = rtnl_dereference(net_device_ctx->vf_netdev);
223 if (vf_netdev)
224 dev_close(vf_netdev);
299 struct net_device *vf_netdev;
303 vf_netdev = rcu_dereference(ndc->vf_netdev);
304 if (vf_netdev) {
305 const struct net_device_ops *vf_ops = vf_netdev->netdev_ops;
308 txq = vf_ops->ndo_select_queue(vf_netdev, skb, sb_dev);
310 txq = netdev_pick_tx(vf_netdev, skb, NULL);
449 static int netvsc_vf_xmit(struct net_device *net, struct net_device *vf_netdev,
456 skb->dev = vf_netdev;
482 struct net_device *vf_netdev;
491 vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
492 if (vf_netdev && netif_running(vf_netdev) &&
493 netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net) &&
495 return netvsc_vf_xmit(net, vf_netdev, skb);
1176 struct net_device *vf_netdev;
1178 vf_netdev = rtnl_dereference(ndc->vf_netdev);
1180 if (vf_netdev)
1181 return __ethtool_get_link_ksettings(vf_netdev, cmd);
1194 struct net_device *vf_netdev = rtnl_dereference(ndc->vf_netdev);
1196 if (vf_netdev) {
1197 if (!vf_netdev->ethtool_ops->set_link_ksettings)
1200 return vf_netdev->ethtool_ops->set_link_ksettings(vf_netdev,
1211 struct net_device *vf_netdev = rtnl_dereference(ndevctx->vf_netdev);
1226 if (vf_netdev) {
1227 ret = dev_set_mtu(vf_netdev, mtu);
1248 if (vf_netdev)
1249 dev_set_mtu(vf_netdev, orig_mtu);
1404 struct net_device *vf_netdev = rtnl_dereference(ndc->vf_netdev);
1416 if (vf_netdev) {
1417 err = dev_set_mac_address(vf_netdev, addr, NULL);
1425 } else if (vf_netdev) {
1428 dev_set_mac_address(vf_netdev, addr, NULL);
1930 struct net_device *vf_netdev = rtnl_dereference(ndevctx->vf_netdev);
1958 if (!vf_netdev)
1961 vf_netdev->wanted_features = features;
1962 netdev_update_features(vf_netdev);
2145 static struct net_device *get_netvsc_byref(struct net_device *vf_netdev)
2150 dev = netdev_master_upper_dev_get(vf_netdev);
2189 static int netvsc_vf_join(struct net_device *vf_netdev,
2195 ret = netdev_rx_handler_register(vf_netdev,
2198 netdev_err(vf_netdev,
2204 ret = netdev_master_upper_dev_link(vf_netdev, ndev,
2207 netdev_err(vf_netdev,
2219 call_netdevice_notifiers(NETDEV_JOIN, vf_netdev);
2221 netdev_info(vf_netdev, "joined to %s\n", ndev->name);
2225 netdev_rx_handler_unregister(vf_netdev);
2231 struct net_device *vf_netdev)
2236 ret = dev_set_mtu(vf_netdev, ndev->mtu);
2238 netdev_warn(vf_netdev,
2242 dev_change_flags(vf_netdev, ndev->flags | IFF_SLAVE, NULL);
2246 dev_uc_sync(vf_netdev, ndev);
2247 dev_mc_sync(vf_netdev, ndev);
2251 ret = dev_open(vf_netdev, NULL);
2253 netdev_warn(vf_netdev,
2266 struct net_device *vf_netdev;
2273 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
2274 if (vf_netdev)
2275 __netvsc_vf_setup(ndev, vf_netdev);
2283 static struct net_device *get_netvsc_byslot(const struct net_device *vf_netdev)
2285 struct device *parent = vf_netdev->dev.parent;
2296 netdev_notice(vf_netdev, "no PCI slot information\n");
2301 netdev_notice(vf_netdev, "Invalid vf serial:%s\n",
2314 if (ndev->addr_len != vf_netdev->addr_len ||
2315 memcmp(ndev->perm_addr, vf_netdev->perm_addr,
2324 * Because this function can be called before vf_netdev is
2332 if (ether_addr_equal(vf_netdev->perm_addr, ndev->perm_addr) ||
2333 ether_addr_equal(vf_netdev->dev_addr, ndev->perm_addr))
2337 netdev_notice(vf_netdev,
2342 static int netvsc_prepare_bonding(struct net_device *vf_netdev)
2346 ndev = get_netvsc_byslot(vf_netdev);
2351 vf_netdev->flags |= IFF_SLAVE;
2355 static int netvsc_register_vf(struct net_device *vf_netdev, int context)
2363 if (vf_netdev->addr_len != ETH_ALEN)
2366 ndev = get_netvsc_byslot(vf_netdev);
2372 if (!netvsc_dev || rtnl_dereference(net_device_ctx->vf_netdev))
2379 if (!net_eq(dev_net(ndev), dev_net(vf_netdev))) {
2380 ret = dev_change_net_namespace(vf_netdev,
2383 netdev_err(vf_netdev,
2387 netdev_info(vf_netdev,
2393 netdev_info(ndev, "VF registering: %s\n", vf_netdev->name);
2395 if (netvsc_vf_join(vf_netdev, ndev, context) != 0)
2398 dev_hold(vf_netdev);
2399 rcu_assign_pointer(net_device_ctx->vf_netdev, vf_netdev);
2401 if (ndev->needed_headroom < vf_netdev->needed_headroom)
2402 ndev->needed_headroom = vf_netdev->needed_headroom;
2404 vf_netdev->wanted_features = ndev->features;
2405 netdev_update_features(vf_netdev);
2408 netvsc_vf_setxdp(vf_netdev, prog);
2423 static int netvsc_vf_changed(struct net_device *vf_netdev, unsigned long event)
2432 vf_is_up = netif_running(vf_netdev);
2434 ndev = get_netvsc_byref(vf_netdev);
2456 vf_is_up ? "to" : "from", vf_netdev->name, ret);
2460 vf_is_up ? "to" : "from", vf_netdev->name);
2466 static int netvsc_unregister_vf(struct net_device *vf_netdev)
2471 ndev = get_netvsc_byref(vf_netdev);
2478 netdev_info(ndev, "VF unregistering: %s\n", vf_netdev->name);
2480 netvsc_vf_setxdp(vf_netdev, NULL);
2483 netdev_rx_handler_unregister(vf_netdev);
2484 netdev_upper_dev_unlink(vf_netdev, ndev);
2485 RCU_INIT_POINTER(net_device_ctx->vf_netdev, NULL);
2486 dev_put(vf_netdev);
2517 struct net_device *net = NULL, *vf_netdev;
2640 for_each_netdev(dev_net(net), vf_netdev) {
2641 ret = check_dev_is_matching_vf(vf_netdev);
2645 if (net != get_netvsc_byslot(vf_netdev))
2648 netvsc_prepare_bonding(vf_netdev);
2649 netvsc_register_vf(vf_netdev, VF_REG_IN_PROBE);
2650 __netvsc_vf_setup(net, vf_netdev);
2675 struct net_device *vf_netdev, *net;
2699 vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
2700 if (vf_netdev)
2701 netvsc_unregister_vf(vf_netdev);