The uninitialized field 'extra_flag' of hash parameter may enable certain feature silently. Typically, if bit0 of 'extra_flag' set, the hardware transactional memory support will be enabled unexpectedly.
Signed-off-by: Haiyang Tan <haiyang...@tencent.com> --- drivers/net/enic/enic_clsf.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c index 9d95201ec..f9707c78f 100644 --- a/drivers/net/enic/enic_clsf.c +++ b/drivers/net/enic/enic_clsf.c @@ -475,14 +475,15 @@ void enic_clsf_destroy(struct enic *enic) int enic_clsf_init(struct enic *enic) { char clsf_name[RTE_HASH_NAMESIZE]; - struct rte_hash_parameters hash_params = { - .name = clsf_name, - .entries = ENICPMD_CLSF_HASH_ENTRIES, - .key_len = sizeof(struct rte_eth_fdir_filter), - .hash_func = DEFAULT_HASH_FUNC, - .hash_func_init_val = 0, - .socket_id = SOCKET_ID_ANY, - }; + struct rte_hash_parameters hash_params = { 0 }; + + hash_params.name = clsf_name; + hash_params.entries = ENICPMD_CLSF_HASH_ENTRIES; + hash_params.key_len = sizeof(struct rte_eth_fdir_filter); + hash_params.hash_func = DEFAULT_HASH_FUNC; + hash_params.hash_func_init_val = 0; + hash_params.socket_id = SOCKET_ID_ANY; + snprintf(clsf_name, RTE_HASH_NAMESIZE, "enic_clsf_%s", enic->bdf_name); enic->fdir.hash = rte_hash_create(&hash_params); memset(&enic->fdir.stats, 0, sizeof(enic->fdir.stats)); -- 2.14.1