Thread (16 messages) flat view 16 messages, 2 authors, 2024-12-12

Re: [PATCH V6 net-next 3/7] net: hibmcge: Add unicast frame filter supported in this module

From: Jijie Shao <shaojijie@huawei.com>
Date: 2024-12-12 13:56:56
Also in: lkml

on 2024/12/12 11:54, Jakub Kicinski wrote:
On Tue, 10 Dec 2024 21:48:51 +0800 Jijie Shao wrote:
quoted
+static void hbg_del_mac_from_filter(struct hbg_priv *priv, const u8 *addr)
+{
+	u32 index;
+
+	/* not exists */
+	if (hbg_get_index_from_mac_table(priv, addr, &index))
+		return;
+
+	hbg_set_mac_to_mac_table(priv, index, NULL);
+
+	if (priv->filter.table_overflow) {
why are you tracking the overflow (see below)
quoted
+		priv->filter.table_overflow = false;
+		hbg_update_promisc_mode(priv->netdev);
+		dev_info(&priv->pdev->dev, "mac table is not full\n");
+	}
+}
+
+static int hbg_uc_sync(struct net_device *netdev, const unsigned char *addr)
+{
+	struct hbg_priv *priv = netdev_priv(netdev);
+
+	return hbg_add_mac_to_filter(priv, addr);
+}
+
+static int hbg_uc_unsync(struct net_device *netdev, const unsigned char *addr)
+{
+	struct hbg_priv *priv = netdev_priv(netdev);
+
+	if (ether_addr_equal(netdev->dev_addr, (u8 *)addr))
+		return 0;
+
+	hbg_del_mac_from_filter(priv, addr);
+	return 0;
+}
+
+static void hbg_net_set_rx_mode(struct net_device *netdev)
+{
+	hbg_update_promisc_mode(netdev);
+	__dev_uc_sync(netdev, hbg_uc_sync, hbg_uc_unsync);
__dev_uc_sync() will only fail if it failed to add an entry
you can pass the status it returned (cast to bool) to
hbg_update_promisc_mode(), no need to save the "table_overflow" bool
Ok, I'll fix it in v7

Thanks,
Jijie Shao



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help