On Sun, Oct 09, 2022 at 07:40:44PM +0200, Hans J. Schultz wrote:
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 74864dc46a7e..8008ceb45605 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -4035,6 +4035,7 @@ int ndo_dflt_fdb_add(struct ndmsg *ndm, const unsigned char *addr, u16 vid, u16 flags) {
- __u32 ext_flags = 0; int err = -EINVAL;
/* If aging addresses are supported device will need to @@ -4050,6 +4051,14 @@ int ndo_dflt_fdb_add(struct ndmsg *ndm, return err; }
- if (tb[NDA_FLAGS_EXT])
ext_flags = nla_get_u32(tb[NDA_FLAGS_EXT]);
- if (ext_flags & NTF_EXT_LOCKED) {
netdev_info(dev, "invalid flags given to default FDB implementation\n");
return err;
- }
I'm not sure it makes sense to deny specific flags in this case. It might be better to just error out if NDA_FLAGS_EXT was specified.
- if (is_unicast_ether_addr(addr) || is_link_local_ether_addr(addr)) err = dev_uc_add_excl(dev, addr); else if (is_multicast_ether_addr(addr))
-- 2.34.1