Hello Wenzhuo, How about also delete meaningless "ixgbe_remove_rar(dev, 0);"?
Best regards, Igor On Tue, May 2, 2017 at 11:34 AM, Wenzhuo Lu <[email protected]> wrote: > 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: [email protected] > > Signed-off-by: Wenzhuo Lu <[email protected]> > --- > drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ > ethdev.c > index bbae4f9..9ddd685 100644 > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > @@ -4658,9 +4658,11 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused > struct rte_eth_dev *dev, > 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 > -- > 1.9.3 > >

