As hotplug has been enabled, start the testpmd with no nic binded
will show one error log "Please stop the ports first":

Interactive-mode selected
Please stop the ports first
Done
testpmd>

This issue is cause by the logic of check link status.

Signed-off-by: Michael Qiu <michael.qiu at intel.com>
---
 app/test-pmd/testpmd.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 61291be..e556b4c 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1315,7 +1315,7 @@ port_is_closed(portid_t port_id)
 int
 start_port(portid_t pid)
 {
-       int diag, need_check_link_status = 0;
+       int diag, need_check_link_status = -1;
        portid_t pi;
        queueid_t qi;
        struct rte_port *port;
@@ -1337,6 +1337,7 @@ start_port(portid_t pid)
                if (pid != pi && pid != (portid_t)RTE_PORT_ALL)
                        continue;

+               need_check_link_status = 0;
                port = &ports[pi];
                if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_STOPPED,
                                                 RTE_PORT_HANDLING) == 0) {
@@ -1457,9 +1458,9 @@ start_port(portid_t pid)
                need_check_link_status = 1;
        }

-       if (need_check_link_status && !no_link_check)
+       if (need_check_link_status == 1 && !no_link_check)
                check_all_ports_link_status(RTE_PORT_ALL);
-       else
+       else if (need_check_link_status == 0)
                printf("Please stop the ports first\n");

        printf("Done\n");
-- 
1.9.3

Reply via email to