[PATCH v10 21/21] hash: remove use of VLAs by using standard arrays
Andre Muezerie
andremue at linux.microsoft.com
Thu Nov 21 18:50:59 CET 2024
On Wed, Nov 20, 2024 at 10:51:26AM +0000, Medvedkin, Vladimir wrote:
> Hi Andre,
>
> On 20/11/2024 03:13, Andre Muezerie wrote:
> >MSVC does not support VLAs, replace VLAs with standard C arrays.
> >
> >Signed-off-by: Andre Muezerie<andremue at linux.microsoft.com>
> >---
> > lib/hash/rte_thash_gf2_poly_math.c | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> >diff --git a/lib/hash/rte_thash_gf2_poly_math.c b/lib/hash/rte_thash_gf2_poly_math.c
> >index 1c62974e71..cf7c7d396c 100644
> >--- a/lib/hash/rte_thash_gf2_poly_math.c
> >+++ b/lib/hash/rte_thash_gf2_poly_math.c
> >@@ -8,6 +8,7 @@
> > #include <rte_thash.h>
> > #include <rte_log.h>
> >+#define MAX_POLY_DEGREE 32
> > #define MAX_TOEPLITZ_KEY_LENGTH 64
> > RTE_LOG_REGISTER_SUFFIX(thash_poly_logtype, thash_poly, INFO);
> > #define RTE_LOGTYPE_HASH thash_poly_logtype
> >@@ -149,7 +150,7 @@ gf2_pow(uint32_t a, uint32_t pow, uint32_t r, int degree)
> > static uint32_t
> > __thash_get_rand_poly(int poly_degree)
> > {
> >- uint32_t roots[poly_degree];
> >+ uint32_t roots[MAX_POLY_DEGREE];
> > uint32_t rnd;
> > uint32_t ret_poly = 0;
> > int i, j;
> >@@ -194,7 +195,7 @@ __thash_get_rand_poly(int poly_degree)
> > * Get coefficients of the polynomial for
> > * (x - roots[0])(x - roots[1])...(x - roots[n])
> > */
> >- uint32_t poly_coefficients[poly_degree + 1];
> >+ uint32_t poly_coefficients[MAX_POLY_DEGREE + 1];
> > for (i = 0; i <= poly_degree; i++)
> > poly_coefficients[i] = 0;
> Since poly_coefficients is not a VLA anymore you can initializeit
> with zeros and get rid of the loop
Good observation. I'll update this.
Regards,
Andre
> >@@ -247,7 +248,7 @@ thash_get_rand_poly(uint32_t poly_degree)
> > {
> > uint32_t ret_poly;
> >- if (poly_degree > 32) {
> >+ if (poly_degree > MAX_POLY_DEGREE) {
> > HASH_LOG(ERR, "Wrong polynomial degree %d, must be in range [1, 32]", poly_degree);
> > return 0;
> > }
>
> --
> Regards,
> Vladimir
More information about the dev
mailing list