On 2023-02-03 09:17, Simon Horman wrote:
On Thu, Feb 02, 2023 at 05:45:56PM +0100, [email protected] 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.

No noise at all... I think your concern is quite ligitimate. With this flag there is no iproute2 changes, so not to change behaviour of old commands the best is to ignore silently. But I have another flag coming up that will be accomodated with a new iproute2 command, and then your suggestion is more appropriate. The question will then be if the returns for that flag should be -EOPNOTSUPP.

Reply via email to