[v3,06/19] hash/thash: remove use of VLAs for Windows built code
Checks
Commit Message
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(-)
@@ -771,7 +771,7 @@ struct rte_thash_subtuple_helper *
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;
@@ -109,6 +109,14 @@ union __rte_aligned(XMM_SIZE) rte_thash_tuple {
};
/**
+ * 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
* pointer to original RSS key