On Mon, Aug 02, 2021 at 03:10:34PM +0200, Oleksij Rempel wrote: > +static int ar9331_sw_port_fdb_add(struct dsa_switch *ds, int port, > + const unsigned char *mac, u16 vid) > +{ > + struct ar9331_sw_priv *priv = (struct ar9331_sw_priv *)ds->priv; > + u16 port_mask = BIT(port); > + > + if (vid) > + return -EINVAL; When did you test this patch last time on net-next? Asking because when a port joins a VLAN-aware bridge, it will replay the FDB entries towards the bridge, which include a VLAN-unaware FDB entry with VID 0, and a VLAN-aware one with the bridge's default_pvid. If you return -EINVAL, that br_fdb_replay call will fail and you will fail to join the bridge. > + > + return ar9331_sw_port_fdb_rmw(priv, mac, port_mask, 0); > +} > + > +static int ar9331_sw_port_fdb_del(struct dsa_switch *ds, int port, > + const unsigned char *mac, u16 vid) > +{ > + struct ar9331_sw_priv *priv = (struct ar9331_sw_priv *)ds->priv; > + u16 port_mask = BIT(port); > + > + if (vid) > + return -EINVAL; > + > + return ar9331_sw_port_fdb_rmw(priv, mac, 0, port_mask); > +}