From: Herbert Xu <herb...@gondor.apana.org.au> Date: Mon, 30 May 2016 16:28:28 +0800
> @@ -725,6 +730,8 @@ static void macvlan_set_mac_lists(struct net_device *dev) > { > struct macvlan_dev *vlan = netdev_priv(dev); > > + dev_uc_sync(vlan->lowerdev, dev); > + dev_mc_sync(vlan->lowerdev, dev); > if (dev->flags & (IFF_PROMISC | IFF_ALLMULTI)) { > bitmap_fill(vlan->mc_filter, MACVLAN_MC_FILTER_SZ); > } else { I think you need to set the vlan->port->mc_filter to all 1's in the PROMISC/ALLMUTI branch here. Otherwise packets won't properly pass your new hash test.