]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: dsa: b53: skip multicast entries for fdb_dump()
authorJonas Gorski <jonas.gorski@gmail.com>
Wed, 17 Dec 2025 20:57:56 +0000 (21:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:57 +0000 (13:09 +0100)
[ Upstream commit d42bce414d1c5c0b536758466a1f63ac358e613c ]

port_fdb_dump() is supposed to only add fdb entries, but we iterate over
the full ARL table, which also includes multicast entries.

So check if the entry is a multicast entry before passing it on to the
callback().

Additionally, the port of those entries is a bitmask, not a port number,
so any included entries would have even be for the wrong port.

Fixes: 1da6df85c6fb ("net: dsa: b53: Implement ARL add/del/dump operations")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20251217205756.172123-1-jonas.gorski@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/b53/b53_common.c

index d5ed733c0c97927f112a2a08fab9839411506acb..a43cbb481529d89758d022860977ce157bd1539c 100644 (file)
@@ -1832,6 +1832,9 @@ static int b53_fdb_copy(int port, const struct b53_arl_entry *ent,
        if (!ent->is_valid)
                return 0;
 
+       if (is_multicast_ether_addr(ent->mac))
+               return 0;
+
        if (port != ent->port)
                return 0;