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: sta...@dpdk.org
> 
> Signed-off-by: Ting Xu <ting...@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.

Reply via email to