Re: [RFC PATCH net-next 05/10] net: hibmcge: Implement some .ndo functions

From: Andrew Lunn
Date: Wed Jul 31 2024 - 21:54:42 EST


> +static int hbg_net_set_mac_address(struct net_device *dev, void *addr)
> +{
> + struct hbg_priv *priv = netdev_priv(dev);
> + u8 *mac_addr;
> +
> + mac_addr = ((struct sockaddr *)addr)->sa_data;
> + if (ether_addr_equal(dev->dev_addr, mac_addr))
> + return 0;
> +
> + if (!is_valid_ether_addr(mac_addr))
> + return -EADDRNOTAVAIL;

How does the core pass you an invalid MAC address?

> +static int hbg_net_change_mtu(struct net_device *dev, int new_mtu)
> +{
> + struct hbg_priv *priv = netdev_priv(dev);
> + bool is_opened = hbg_nic_is_open(priv);
> + u32 frame_len;
> +
> + if (new_mtu == dev->mtu)
> + return 0;
> +
> + if (new_mtu < priv->dev_specs.min_mtu || new_mtu > priv->dev_specs.max_mtu)
> + return -EINVAL;

You just need to set dev->min_mtu and dev->max_mtu, and the core will
do this validation for you.

> + dev_info(&priv->pdev->dev,
> + "change mtu from %u to %u\n", dev->mtu, new_mtu);

dev_dbg() Don't spam the log for normal operations.

Andrew