[dpdk-dev,2/3] enic: use appropriate key length in hash table

Message ID 1441357542-9820-3-git-send-email-pablo.de.lara.guarch@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

De Lara Guarch, Pablo Sept. 4, 2015, 9:05 a.m. UTC
  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>
---
 drivers/net/enic/enic_clsf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Sujith Sankar Sept. 4, 2015, 10:15 a.m. UTC | #1
On 04/09/15 2:35 pm, "Pablo de Lara" <pablo.de.lara.guarch@intel.com>
wrote:

>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>
>---
> drivers/net/enic/enic_clsf.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
>index 9c2abfb..656b25b 100644
>--- a/drivers/net/enic/enic_clsf.c
>+++ b/drivers/net/enic/enic_clsf.c
>@@ -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,
>--

Looks good.

Thanks,
-Sujith


> 
>2.4.2
>
  

Patch

diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index 9c2abfb..656b25b 100644
--- a/drivers/net/enic/enic_clsf.c
+++ b/drivers/net/enic/enic_clsf.c
@@ -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,