Testpmd terminated unconditionally if it failed to start all ports.

The patch allows testpmd to get into the command line,
if the interactive mode was requested.

Fixes: 6937d2103e22 ("app/testpmd: add option to not start device")

Cc: step...@networkplumber.org
Cc: sta...@dpdk.org

Signed-off-by: Gregory Etelson <getel...@nvidia.com>
---
v2: add Cc
---
 app/test-pmd/testpmd.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 7381dfd9e5..8517f376db 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -4433,8 +4433,11 @@ main(int argc, char** argv)
                }
        }
 
-       if (!no_device_start && start_port(RTE_PORT_ALL) != 0)
-               rte_exit(EXIT_FAILURE, "Start ports failed\n");
+       if (!no_device_start && start_port(RTE_PORT_ALL) != 0) {
+               fprintf(stderr, "Start ports failed\n");
+               if (!interactive)
+                       goto eal_out;
+       }
 
        /* set all ports to promiscuous mode by default */
        RTE_ETH_FOREACH_DEV(port_id) {
@@ -4526,6 +4529,7 @@ main(int argc, char** argv)
                        return 1;
        }
 
+eal_out:
        ret = rte_eal_cleanup();
        if (ret != 0)
                rte_exit(EXIT_FAILURE,
-- 
2.34.1

Reply via email to