Hi, all

What about this patch?

Thanks,
Michael


On 3/2/2015 4:31 PM, Qiu, Michael wrote:
> 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");

Reply via email to