> @@ -283,6 +282,8 @@ int aq_nic_ndev_init(struct aq_nic_s *self)
>       self->ndev->features = aq_hw_caps->hw_features;
>       self->ndev->priv_flags = aq_hw_caps->hw_priv_flags;
>       self->ndev->mtu = aq_nic_cfg->mtu - ETH_HLEN;
> +     self->ndev->min_mtu = ETH_MIN_MTU;

This is not required. It will default to ETH_MIN_MTU.

     Andrew

> +     self->ndev->max_mtu = self->aq_hw_caps.mtu - ETH_FCS_LEN - ETH_HLEN;
>  
>       return 0;
>  }
> @@ -695,7 +696,7 @@ int aq_nic_set_mtu(struct aq_nic_s *self, int new_mtu)
>  {
>       int err = 0;
>  
> -     if (new_mtu > self->aq_hw_caps.mtu) {
> +     if (new_mtu + ETH_FCS_LEN > self->aq_hw_caps.mtu) {

If you have set max_mtu correctly, this cannot happen.  But it seems
odd you don't have ETH_HLEN here, where as when setting max_mtu you
do.

   Andrew

Reply via email to