From 4c96e084fd4c2fee2bfc09bd2eb0e3e6a9e9a883 Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko Date: Sun, 24 Oct 2021 19:42:37 +0300 Subject: [PATCH] app/testpmd: fix MTU configuration before device start There is no point to do rte_eth_dev_mtu_set() before configure since set MTU value is overwritten on configure anyway. So, setting of MTU before configure is rejected now on ethdev level. If testpmd is going to do configure (e.g. just after testpmd start with disabled devices start up or any configuration changes in stopped state which require reconfigure), just save requested MTU in device config to be applied on reconfigure. Fixes: 1bb4a528c41f ("ethdev: fix max Rx packet length") Fixes: b26bee10ee37 ("ethdev: forbid MTU set before device configure") Signed-off-by: Andrew Rybchenko Acked-by: Ajit Khaparde Reviewed-by: Ferruh Yigit --- app/test-pmd/config.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index a18871d461..3b97164302 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1241,10 +1241,12 @@ port_mtu_set(portid_t port_id, uint16_t mtu) if (port_id_is_invalid(port_id, ENABLED_WARN)) return; - diag = rte_eth_dev_set_mtu(port_id, mtu); - if (diag != 0) { - fprintf(stderr, "Set MTU failed. diag=%d\n", diag); - return; + if (port->need_reconfig == 0) { + diag = rte_eth_dev_set_mtu(port_id, mtu); + if (diag != 0) { + fprintf(stderr, "Set MTU failed. diag=%d\n", diag); + return; + } } port->dev_conf.rxmode.mtu = mtu; -- 2.20.1