[dpdk-stable] [PATCH 17.11 1/2] table: fix casting cuckoo hash function
Yongseok Koh
yskoh at mellanox.com
Thu Jan 3 09:26:26 CET 2019
GCC 8.1 error:
lib/librte_table/rte_table_hash_cuckoo.c: In function
‘rte_table_hash_cuckoo_create’:
lib/librte_table/rte_table_hash_cuckoo.c:139:16: error: cast between
incompatible function types from ‘rte_table_hash_op_hash’ {aka ‘long
unsigned int (*)(void *, void *, unsigned int, long unsigned int)’} to
‘uint32_t (*)(const void *, uint32_t, uint32_t)’ {aka ‘unsigned int
(*)(const void *, unsigned int, unsigned int)’}
[-Werror=cast-function-type]
.hash_func = (rte_hash_function)(p->f_hash),
^
This issue is fixed by [1] in dpdk/master, but this patch is a workaround
to not break API/ABI in stable branch and originally suggested by
Andy Green [2].
[1] commit 8ea41438832a ("table: add dedicated params struct for cuckoo hash")
[2] https://mails.dpdk.org/archives/dev/2018-May/100405.html
Fixes: 5a80bf0ae613 ("table: add cuckoo hash")
Cc: guruprasadx.rao at intel.com
Suggested-by: Andy Green <andy at warmcat.com>
Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
---
lib/librte_table/rte_table_hash_cuckoo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_table/rte_table_hash_cuckoo.c b/lib/librte_table/rte_table_hash_cuckoo.c
index f3845c752..c65228254 100644
--- a/lib/librte_table/rte_table_hash_cuckoo.c
+++ b/lib/librte_table/rte_table_hash_cuckoo.c
@@ -136,7 +136,7 @@ rte_table_hash_cuckoo_create(void *params,
struct rte_hash_parameters hash_cuckoo_params = {
.entries = p->n_keys,
.key_len = p->key_size,
- .hash_func = (rte_hash_function)(p->f_hash),
+ .hash_func = (rte_hash_function)(void *)(p->f_hash),
.hash_func_init_val = p->seed,
.socket_id = socket_id,
.name = p->name
--
2.11.0
More information about the stable
mailing list