On Mon, Mar 28, 2016 at 9:42 AM, Xin Long <lucien....@gmail.com> wrote: > There is an issue when we use mavtap over team: > When we replug nic links from team0, the real nics's mc list will not > include the maddr for macvtap any more. then we can't receive pkts to > macvtap device, as they are filterred by mc list of nic. > > In Bonding Driver, it syncs the uc/mc addrs in bond_enslave(). > > We will fix this issue on team by adding the port's uc/mc addrs sync in > team_port_add. > > Signed-off-by: Xin Long <lucien....@gmail.com> > --- > drivers/net/team/team.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c > index 26c64d2..17ff367 100644 > --- a/drivers/net/team/team.c > +++ b/drivers/net/team/team.c > @@ -1198,6 +1198,9 @@ static int team_port_add(struct team *team, struct > net_device *port_dev) > goto err_dev_open; > } > > + dev_uc_sync_multiple(port_dev, dev); > + dev_mc_sync_multiple(port_dev, dev); > + > err = vlan_vids_add_by_dev(port_dev, dev);
You need to call dev_{uc,mc}_unsync() on error path, don't you?