On Thu, Feb 02, 2023 at 05:45:56PM +0100, netdev@xxxxxxxxxxxxxxxxxxxx wrote: > On 2023-01-31 19:54, Simon Horman wrote: > > > --- a/drivers/net/dsa/b53/b53_common.c > > > +++ b/drivers/net/dsa/b53/b53_common.c > > > @@ -1684,11 +1684,15 @@ static int b53_arl_op(struct b53_device > > > *dev, int op, int port, > > > > > > int b53_fdb_add(struct dsa_switch *ds, int port, > > > const unsigned char *addr, u16 vid, > > > - struct dsa_db db) > > > + u16 fdb_flags, struct dsa_db db) > > > { > > > struct b53_device *priv = ds->priv; > > > int ret; > > > > > > + /* Ignore entries with set flags */ > > > + if (fdb_flags) > > > + return 0; > > > > > > Would returning -EOPNOTSUPP be more appropriate? > > > > ... > > I don't think that would be so good, as the command > > bridge fdb replace ADDR dev <DEV> master dynamic > > is a valid command and should not generate errors. When ignored by the > driver, it will just install a dynamic FDB entry in the bridge, and the > bridge will age it. Sure, I agree that it's not necessarily an error that needs to propagate to the user. My assumption, which I now see is likely false, is that drivers could return -EOPNOTSUPP, to indicate to higher layers that the operation is not supported. But the higher layers may not propagate that. But it seems that is not the case here. So I think return 0 is fine after all. Sorry for the noise.