[dpdk-dev] [PATCH v1] app/testpmd: fix DCB set failure in FreeBSD by clang

Ferruh Yigit ferruh.yigit at intel.com
Mon May 11 18:29:09 CEST 2020


On 5/11/2020 11:25 AM, Ting Xu wrote:
> When set DCB in testpmd by clang, there is a segmentation fault.
> It is because the local variable rss_conf in get_eth_dcb_conf()
> is not cleared, so that the pointer member variable rss_key has
> a random address, which leads to an error in the following
> processing. This patch initialized the local variable rss_conf
> to avoid random address.

This is nothing really FreeBSD or clang issue, although it may be reproduced
that environment, this is a pointer with random value issue. We may drop FreeBSD
and clang reference to not create confusion.

> 
> Fixes: b57b66a97ebf ("app/testpmd: support mbuf dynamic flag")

This commit looks unrelated, if not can you please explain why above commit
causing the issue?

> Cc: stable at dpdk.org
> 
> Signed-off-by: Ting Xu <ting.xu at intel.com>
> ---
>  app/test-pmd/testpmd.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 99bacddbf..1276476ca 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3408,6 +3408,7 @@ get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf,
>  	int32_t rc;
>  	struct rte_eth_rss_conf rss_conf;
>  
> +	memset(&rss_conf, 0, sizeof(struct rte_eth_rss_conf));

The variable is used in the 'else' leg, memset can be moved there, but more
importantly should this be done in the 'rte_eth_dev_rss_hash_conf_get()' API.

@Andrew, @Thomas,

What do you think 'rte_eth_dev_rss_hash_conf_get()' memset the 'rss_conf' param
before passing it to the PMD? To prevent issues like above in user application.


More information about the dev mailing list