[dpdk-stable] [PATCH 17.11 1/2] table: fix casting cuckoo hash function

Yongseok Koh yskoh at mellanox.com
Thu Jan 3 09:29:26 CET 2019


> On Jan 3, 2019, at 12:26 AM, Yongseok Koh <yskoh at mellanox.com> wrote:
> 
> 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://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpdk.org%2Farchives%2Fdev%2F2018-May%2F100405.html&data=02%7C01%7Cyskoh%40mellanox.com%7C8338e137d62644ae802908d6715535e6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636821008168448180&sdata=v%2BFZ7xAoihB%2BdrpxXcqVtlcM%2FlUIPiK73%2FmTTLHPI7Q%3D&reserved=0
> 
> 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>
> ---

Applied to stable/17.11.
Cristian, let me know if you have any objection.

Thanks,
Yongseok

> 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