]> git.hungrycats.org Git - linux/commitdiff
net: stmmac: dwmac4: Account for the primary MAC address for UC filtering
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 26 Aug 2026 14:04:55 +0000 (16:04 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 27 Aug 2026 17:53:27 +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: 477286b53f55 ("stmmac: add GMAC4 core support")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260826140500.616466-4-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c

index c6fcfae27c3d0eb2ca3269c9be2f4333dc1546a8..18b357b257cc0916cab0b43c581e8a4a37200e73 100644 (file)
@@ -521,7 +521,7 @@ static void dwmac4_set_filter(struct mac_device_info *hw,
        value |= GMAC_PACKET_FILTER_HPF;
 
        /* Handle multiple unicast addresses */
-       if (netdev_uc_count(dev) > hw->unicast_filter_entries) {
+       if (netdev_uc_count(dev) + 1 > hw->unicast_filter_entries) {
                /* Switch to promiscuous mode if more than 128 addrs
                 * are required
                 */