Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: dsa: b53: skip multicast entries for fdb_dump()

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>

authored by

Jonas Gorski and committed by
Paolo Abeni
d42bce41 352df98b

+3
+3
drivers/net/dsa/b53/b53_common.c
··· 2169 2169 if (!ent->is_valid) 2170 2170 return 0; 2171 2171 2172 + if (is_multicast_ether_addr(ent->mac)) 2173 + return 0; 2174 + 2172 2175 if (port != ent->port) 2173 2176 return 0; 2174 2177