net/ixgbe: fix default MAC setting
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Tue, 2 May 2017 08:34:59 +0000 (16:34 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 5 May 2017 14:54:04 +0000 (16:54 +0200)
Pool 0 is not PF, it's VF 0. So the MAC is set for VF 0
but not PF.
The code introduced a weird issue. In the scenario PF + VF,
when only starting PF, the default PF MAC address is working.
But after starting a VF, the default PF MAC address becomes
the VF's address.

Use the pool which is not occupied by VFs for PF to fix it.

Fixes: 8164fe82846b ("ixgbe: add default mac address modifier")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/ixgbe/ixgbe_ethdev.c

index 006203c..b17c8b1 100644 (file)
@@ -4659,9 +4659,11 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
 static void
 ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)
 {
+       struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+
        ixgbe_remove_rar(dev, 0);
 
-       ixgbe_add_rar(dev, addr, 0, 0);
+       ixgbe_add_rar(dev, addr, 0, pci_dev->max_vfs);
 }
 
 static bool