Commit dfb2b5b8 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Greg Kroah-Hartman

hv_netvsc: ignore devices that are not PCI

[ Upstream commit b93c1b5a ]

Registering another device with same MAC address (such as TAP, VPN or
DPDK KNI) will confuse the VF autobinding logic.  Restrict the search
to only run if the device is known to be a PCI attached VF.

Fixes: e8ff40d4 ("hv_netvsc: improve VF device matching")
Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a21a39a9
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/inetdevice.h> #include <linux/inetdevice.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/pci.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/in.h> #include <linux/in.h>
...@@ -1228,11 +1229,15 @@ static int netvsc_register_vf(struct net_device *vf_netdev) ...@@ -1228,11 +1229,15 @@ static int netvsc_register_vf(struct net_device *vf_netdev)
{ {
struct net_device *ndev; struct net_device *ndev;
struct net_device_context *net_device_ctx; struct net_device_context *net_device_ctx;
struct device *pdev = vf_netdev->dev.parent;
struct netvsc_device *netvsc_dev; struct netvsc_device *netvsc_dev;
if (vf_netdev->addr_len != ETH_ALEN) if (vf_netdev->addr_len != ETH_ALEN)
return NOTIFY_DONE; return NOTIFY_DONE;
if (!pdev || !dev_is_pci(pdev) || dev_is_pf(pdev))
return NOTIFY_DONE;
/* /*
* We will use the MAC address to locate the synthetic interface to * We will use the MAC address to locate the synthetic interface to
* associate with the VF interface. If we don't find a matching * associate with the VF interface. If we don't find a matching
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment