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

Jijie Shao
2024-12-12T13:56:56Z

on 2024/12/12 11:54, Jakub Kicinski wrote:
> On Tue, 10 Dec 2024 21:48:51 +0800 Jijie Shao wrote:
>> +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)
>
>> + 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