When close one port twice, testpmd will give out wrong messagse. testpmd> port stop 0 Stopping ports... Checking link statuses... Port 0 Link Up - speed 0 Mbps - full-duplex Port 1 Link Up - speed 0 Mbps - full-duplex Done testpmd> port close 0 Closing ports... Done testpmd> port close 0 Closing ports... Port 0 is now not stopped Done testpmd>
Signed-off-by: Michael Qiu <michael.qiu at intel.com> --- app/test-pmd/testpmd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 3057791..907cda3 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1534,6 +1534,12 @@ close_port(portid_t pid) port = &ports[pi]; if (rte_atomic16_cmpset(&(port->port_status), + RTE_PORT_CLOSED, RTE_PORT_CLOSED) == 1) { + printf("Port %d is already closed\n", pi); + continue; + } + + if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_STOPPED, RTE_PORT_HANDLING) == 0) { printf("Port %d is now not stopped\n", pi); continue; -- 2.1.0