[dpdk-stable] [PATCH] app/testpmd: fix Segment fault when start fwd

Ferruh Yigit ferruh.yigit at intel.com
Fri Sep 13 19:34:30 CEST 2019


On 9/6/2019 2:28 AM, Wang ShougangX wrote:
> This patch fixed the reset function to avoid crash when user don't
> call port reset , port stop and port start functions as sequence.
> 
> Fixes: 97f1e19679 ("app/testpmd: add port reset command")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Wang ShougangX <shougangx.wang 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 e8e2a39b6..273a7aa02 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -2344,6 +2344,9 @@ reset_port(portid_t pid)
>  	if (port_id_is_invalid(pid, ENABLED_WARN))
>  		return;
>  
> +	printf("Stopping ports...\n");
> +	stop_port(pid);
> +
>  	printf("Resetting ports...\n");
>  
>  	RTE_ETH_FOREACH_DEV(pi) {
> @@ -2372,6 +2375,9 @@ reset_port(portid_t pid)
>  		}
>  	}
>  
> +	printf("Starting ports...\n");
> +	start_port(pid);
> +
>  	printf("Done\n");
>  }

Hi Shougang,

Not sure if 'reset' command should do more than it says, if there is a
requirement that port should be stopped, why not add this condition with an
error message so that user can stop the port in advance if she wants.


Btw, a few things related,
- 'reset_port()' function has a loop inside, 'RTE_ETH_FOREACH_DEV()' but it
works on single port, the loop looked unnecessary to me, can you please check
and remove the loop if required?

- I am not able to see 'reset' has been documented in
'doc/guides/testpmd_app_ug/testpmd_funcs.rst', it may be missing, can you please
check and add it if required?

Thanks,
ferruh


More information about the stable mailing list