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.