[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190523120222.3807-4-esben@geanix.com>
Date: Thu, 23 May 2019 14:02:21 +0200
From: Esben Haabendal <esben@...nix.com>
To: netdev@...r.kernel.org
Cc: "David S. Miller" <davem@...emloft.net>,
Michal Simek <michal.simek@...inx.com>,
Andrew Lunn <andrew@...n.ch>,
Petr Štetiar <ynezz@...e.cz>,
YueHaibing <yuehaibing@...wei.com>,
Dan Carpenter <dan.carpenter@...cle.com>,
Yang Wei <yang.wei9@....com.cn>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [PATCH 3/4] net: ll_temac: Cleanup multicast filter on change
Avoid leaving old address table entries when using multicast. If more than
one multicast address were removed, only the first removed address would
actually be cleared.
Signed-off-by: Esben Haabendal <esben@...nix.com>
---
drivers/net/ethernet/xilinx/ll_temac_main.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c
index 9d43be3..75da604 100644
--- a/drivers/net/ethernet/xilinx/ll_temac_main.c
+++ b/drivers/net/ethernet/xilinx/ll_temac_main.c
@@ -484,10 +484,13 @@ static void temac_set_multicast_list(struct net_device *ndev)
multi_addr_lsw);
i++;
}
- } else {
+ }
+
+ /* Clear all or remaining/unused address table entries */
+ while (i < MULTICAST_CAM_TABLE_NUM) {
temac_indirect_out32_locked(lp, XTE_MAW0_OFFSET, 0);
temac_indirect_out32_locked(lp, XTE_MAW1_OFFSET, i << 16);
- }
+ i++;
}
/* Enable address filter block if currently disabled */
--
2.4.11
Powered by blists - more mailing lists