[PATCH 19.11] net/ixgbe: fix port initialization if MTU config fails

Christian Ehrhardt christian.ehrhardt at canonical.com
Wed Dec 1 16:38:47 CET 2021


On Wed, Dec 1, 2021 at 12:10 PM Tudor Cornea <tudor.cornea at gmail.com> wrote:
>
> [ upstream commit 2108930be123ab83c837e7dd6eb3078ec3482ad4 ]
>

Thanks, applied

> On a VMware ESXi 6.0 setup with an Intel 82599 NIC the ports don't
> seem to initialize anymore, while running testpmd.
>
> Configuring Port 0 (socket 0)
> ixgbevf_dev_rx_init(): Set max packet length to 1518 failed.
> ixgbevf_dev_start(): Unable to initialize RX hardware (-22)
> Fail to start port 0: Invalid argument
> Configuring Port 1 (socket 0)
> ixgbevf_dev_rx_init(): Set max packet length to 1518 failed.
> ixgbevf_dev_start(): Unable to initialize RX hardware (-22)
> Fail to start port 1: Invalid argument
> Please stop the ports first
>
> If the call to ixgbevf_rlpml_set_vf fails and we return prematurely,
> we will not be able to initialize the ports correctly.
>
> Fixes: c77866a16904 ("net/ixgbe: detect failed VF MTU set")
>
> We can make this particular use case work correctly if we don't
> return an error, which seems to be consistent with the overall
> kernel ixgbevf implementation.
>
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/
> drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c?h=v5.14#n2015
>
> Signed-off-by: Tudor Cornea <tudor.cornea at gmail.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index ed36a33..26b49a2 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -5545,11 +5545,9 @@ ixgbevf_dev_rx_init(struct rte_eth_dev *dev)
>          * VF packets received can work in all cases.
>          */
>         if (ixgbevf_rlpml_set_vf(hw,
> -           (uint16_t)dev->data->dev_conf.rxmode.max_rx_pkt_len)) {
> +           (uint16_t)dev->data->dev_conf.rxmode.max_rx_pkt_len))
>                 PMD_INIT_LOG(ERR, "Set max packet length to %d failed.",
>                              dev->data->dev_conf.rxmode.max_rx_pkt_len);
> -               return -EINVAL;
> -       }
>
>         /*
>          * Assume no header split and no VLAN strip support
> --
> 2.7.4
>


-- 
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd


More information about the stable mailing list