On Wed, 18 Dec 2024 17:26:02 +0800
Junlong Wang <wang.junlo...@zte.com.cn> wrote:

> +int zxdh_dev_mtu_set(struct rte_eth_dev *dev, uint16_t new_mtu)
> +{
> +     struct zxdh_hw *hw = dev->data->dev_private;
> +     struct zxdh_panel_table panel = {0};
> +     struct zxdh_port_attr_table vport_att = {0};
> +     uint16_t vfid = zxdh_vport_to_vfid(hw->vport);
> +     uint16_t max_mtu = 0;
> +     int ret = 0;

useless initializations.

> +
> +     max_mtu = ZXDH_MAX_RX_PKTLEN - RTE_ETHER_HDR_LEN - RTE_VLAN_HLEN - 
> ZXDH_DL_NET_HDR_SIZE;
> +     if (new_mtu < ZXDH_ETHER_MIN_MTU || new_mtu > max_mtu) {
> +             PMD_DRV_LOG(ERR, "invalid mtu:%d, range[%d, %d]",
> +                             new_mtu, ZXDH_ETHER_MIN_MTU, max_mtu);
> +             return -EINVAL;
> +     }

These checks are redundant. See rte_ethdev.c::eth_dev_validate_mtu function.
It already checks the mtu against values returned from info_get.

> +
> +     if (dev->data->mtu == new_mtu)
> +             return 0;

This should be done in ethdev_set_mtu but does not look like that is checked.
Will look into fixing it there.

Reply via email to