[RFC 5/6] hash/thash: remove VLA warnings

Morten Brørup mb at smartsharesystems.com
Fri Apr 19 14:17:59 CEST 2024


> @@ -771,7 +771,7 @@ rte_thash_adjust_tuple(struct rte_thash_ctx *ctx,
>  	uint32_t desired_value,	unsigned int attempts,
>  	rte_thash_check_tuple_t fn, void *userdata)
>  {
> -	uint32_t tmp_tuple[tuple_len / sizeof(uint32_t)];
> +	uint32_t tmp_tuple[RTE_THASH_MAX_L4_LEN];

Keep the "/ sizeof(uint32_t)" here, rather than folding it into RTE_THASH_MAX_L4_LEN.

At your preference, keep RTE_THASH_MAX_L4_LEN (removing "in dwords" from it comment) or simply use:
uint32_t tmp_tuple[sizeof(union rte_thash_tuple) / sizeof(uint32_t)];

>  	unsigned int i, j, ret = 0;
>  	uint32_t hash, adj_bits;
>  	const uint8_t *hash_key;
> diff --git a/lib/hash/rte_thash.h b/lib/hash/rte_thash.h
> index 30b657e67a..322fe3af66 100644
> --- a/lib/hash/rte_thash.h
> +++ b/lib/hash/rte_thash.h
> @@ -108,6 +108,14 @@ union rte_thash_tuple {
>  	struct rte_ipv6_tuple	v6;
>  };
> 
> +/**
> + * maximum length in dwords of input tuple to
> + * calculate hash of ipv(4|6) header +
> + * transport header
> + */
> +#define RTE_THASH_MAX_L4_LEN	\
> +	((sizeof(union rte_thash_tuple)) / sizeof(uint32_t))
> +
>  /**
>   * Prepare special converted key to use with rte_softrss_be()
>   * @param orig
> --
> 2.35.3

With sizeof(uint32_t) back in tmp_tuple...
Acked-by: Morten Brørup <mb at smartsharesystems.com>



More information about the dev mailing list