[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