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.