[dpdk-dev] [PATCH v6 2/2] app/testpmd: fix port stop

Wu, Jingjing jingjing.wu at intel.com
Fri Feb 3 09:21:33 CET 2017



> -----Original Message-----
> From: Iremonger, Bernard
> Sent: Friday, January 27, 2017 6:50 PM
> To: dev at dpdk.org; Wu, Jingjing <jingjing.wu at intel.com>
> Cc: Iremonger, Bernard <bernard.iremonger at intel.com>; stable at dpdk.org
> Subject: [PATCH v6 2/2] app/testpmd: fix port stop
> 
> The rte_eth_dev_stop function is not called if the port_status is not
> RTE_PORT_STARTED. This can happen if the rte_eth_dev_start function is
> called directly, ie not through the start_port function.
> 
> Make sure rte_eth_dev_stop is always called in stop_port function.
> 
> Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
> 
> CC: stable at dpdk.org
> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> ---
>  app/test-pmd/testpmd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 3d25436..0d7a4d4 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1490,13 +1490,13 @@ stop_port(portid_t pid)
>  			continue;
>  		}
> 
> +		rte_eth_dev_stop(pi);
> +
>  		port = &ports[pi];
>  		if (rte_atomic16_cmpset(&(port->port_status),
> RTE_PORT_STARTED,
>  						RTE_PORT_HANDLING) == 0)
>  			continue;
> 
> -		rte_eth_dev_stop(pi);
> -

I don't think this fix is correct to move rte_eth_dev_stop above.

We need to make sure rte_eth_dev_start is called in start_port. For vmdq configuration,
You just need to change the configuration when port is stopped.



More information about the dev mailing list