]> git.hungrycats.org Git - linux/commitdiff
net: stmmac: dwxgmac: Account for the primary MAC address for UC filtering
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 26 Aug 2026 14:04:56 +0000 (16:04 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 27 Aug 2026 17:53:28 +0000 (10:53 -0700)
The same filter slots are used to store the main MAC address as well as
the address for the unicast filter. Let's account for that when deciding
whether or not to use promisc when programming the UC list in hardware.

Fixes: 0efedbf11f07 ("net: stmmac: xgmac: Fix XGMAC selftests")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260826140500.616466-5-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c

index 52054f31376d50592ce20f7ff652ff9af1b42dfd..fc6ddb51c6820f38bc7694326911e85f843c4a3d 100644 (file)
@@ -532,7 +532,7 @@ static void dwxgmac2_set_filter(struct mac_device_info *hw,
        dwxgmac2_set_mchash(ioaddr, mc_filter, mcbitslog2);
 
        /* Handle multiple unicast addresses */
-       if (netdev_uc_count(dev) > hw->unicast_filter_entries) {
+       if (netdev_uc_count(dev) + 1 > hw->unicast_filter_entries) {
                value |= XGMAC_FILTER_PR;
        } else {
                struct netdev_hw_addr *ha;