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