[v5,06/20] hash/thash: remove use of VLAs for Windows built

Message ID 1731026691-1529-7-git-send-email-andremue@linux.microsoft.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series remove use of VLAs for Windows |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Andre Muezerie Nov. 8, 2024, 12:44 a.m. UTC
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>

1) ./lib/hash/rte_thash.c:774:9
    : warning: ISO C90 forbids variable length array ‘tmp_tuple’

From my understanding, tuple size here should never exceed
sizeof(union rte_thash_tuple), so it should be safe to replace VLA with
fixed size array.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
---
 lib/hash/rte_thash.c | 2 +-
 lib/hash/rte_thash.h | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)
  

Patch

diff --git a/lib/hash/rte_thash.c b/lib/hash/rte_thash.c
index 99a685f0c8..8ecadb9fef 100644
--- a/lib/hash/rte_thash.c
+++ b/lib/hash/rte_thash.c
@@ -795,7 +795,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];
 	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 e8fdb89530..3ee22c9e32 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