From: Ferruh Yigit Date: Wed, 26 Jan 2022 13:10:37 +0000 (+0000) Subject: net/bonding: fix MTU set for slaves X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=20a53b1927da67f62366752ae2d737cb4ded9b6e;p=dpdk.git net/bonding: fix MTU set for slaves ethdev requires device to be configured before setting MTU. In bonding PMD, while configuring slaves, bonding first sets MTU later configures them, which causes failure if slaves are not configured in advance. Fixing by changing the order in slave configure as requested in ethdev layer, configure first and set MTU later. Bugzilla ID: 864 Fixes: b26bee10ee37 ("ethdev: forbid MTU set before device configure") Cc: stable@dpdk.org Signed-off-by: Ferruh Yigit Tested-by: Yu Jiang Acked-by: Min Hu (Connor) --- diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index c72fc64806..e5abe90e07 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1741,14 +1741,6 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, } } - errval = rte_eth_dev_set_mtu(slave_eth_dev->data->port_id, - bonded_eth_dev->data->mtu); - if (errval != 0 && errval != -ENOTSUP) { - RTE_BOND_LOG(ERR, "rte_eth_dev_set_mtu: port %u, err (%d)", - slave_eth_dev->data->port_id, errval); - return errval; - } - /* Configure device */ errval = rte_eth_dev_configure(slave_eth_dev->data->port_id, nb_rx_queues, nb_tx_queues, @@ -1759,6 +1751,14 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, return errval; } + errval = rte_eth_dev_set_mtu(slave_eth_dev->data->port_id, + bonded_eth_dev->data->mtu); + if (errval != 0 && errval != -ENOTSUP) { + RTE_BOND_LOG(ERR, "rte_eth_dev_set_mtu: port %u, err (%d)", + slave_eth_dev->data->port_id, errval); + return errval; + } + /* Setup Rx Queues */ for (q_id = 0; q_id < bonded_eth_dev->data->nb_rx_queues; q_id++) { bd_rx_q = (struct bond_rx_queue *)bonded_eth_dev->data->rx_queues[q_id];