enic: use appropriate key length in hash table
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Fri, 4 Sep 2015 09:05:41 +0000 (10:05 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 4 Sep 2015 13:26:52 +0000 (15:26 +0200)
RTE_HASH_KEY_LENGTH_MAX was deprecated, and the hash table
actually is hosting bigger keys than that size, so key length
has been increased to properly allocate all keys.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sujith Sankar <ssujith@cisco.com>
drivers/net/enic/enic_clsf.c

index 9c2abfb..656b25b 100644 (file)
@@ -214,7 +214,7 @@ int enic_fdir_add_fltr(struct enic *enic, struct rte_eth_fdir_filter *params)
                enic->fdir.stats.add++;
        }
 
-       pos = rte_hash_add_key(enic->fdir.hash, (void *)key);
+       pos = rte_hash_add_key(enic->fdir.hash, params);
        enic->fdir.nodes[pos] = key;
        return 0;
 }
@@ -244,7 +244,7 @@ int enic_clsf_init(struct enic *enic)
        struct rte_hash_parameters hash_params = {
                .name = "enicpmd_clsf_hash",
                .entries = ENICPMD_CLSF_HASH_ENTRIES,
-               .key_len = RTE_HASH_KEY_LENGTH_MAX,
+               .key_len = sizeof(struct rte_eth_fdir_filter),
                .hash_func = DEFAULT_HASH_FUNC,
                .hash_func_init_val = 0,
                .socket_id = SOCKET_0,