[RFC 5/6] hash/thash: remove VLA warnings
Morten Brørup
mb at smartsharesystems.com
Fri Apr 19 15:10:41 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)];
>
> Not sure I got you here...
> You are not happy with word "dwords" or ...?
> Yes, it is size in 4B elems...
> Same as other RTE_THASH_*_LEN macros in the same .h
Sorry, I missed those. I only looked at the .c file and the description of the tuple_len parameter in the .h file.
Then the RFC is Acked as is. :-)
>
> >
> > > 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