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

Jakub Kicinski
2024-12-12T03:54:41Z

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

> +}
> +
> static int hbg_net_set_mac_address(struct net_device *netdev, void *addr)
> {
> struct hbg_priv *priv = netdev_priv(netdev);
> u8 *mac_addr;
> + bool is_exists;

just "exists", without the is_

> + u32 index;