From: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
To: dev@dpdk.org
Cc: thomas@monjalon.net, ferruh.yigit@amd.com,
andrew.rybchenko@oktetlabs.ru, yipeng1.wang@intel.com,
sameh.gobriel@intel.com, bruce.richardson@intel.com,
vladimir.medvedkin@intel.com, honnappa.nagarahalli@arm.com,
roretzla@linux.microsoft.com,
Konstantin Ananyev <konstantin.ananyev@huawei.com>
Subject: [RFC 5/6] hash/thash: remove VLA warnings
Date: Thu, 18 Apr 2024 11:33:13 +0100 [thread overview]
Message-ID: <20240418103314.40705-6-konstantin.v.ananyev@yandex.ru> (raw)
In-Reply-To: <20240418103314.40705-1-konstantin.v.ananyev@yandex.ru>
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
1) ./lib/hash/rte_thash.c:774:9: warning: ISO C90 forbids variable length array ‘tmp_tuple’ [-Wvla]
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(-)
diff --git a/lib/hash/rte_thash.c b/lib/hash/rte_thash.c
index 68f653fa3d..e28d423172 100644
--- a/lib/hash/rte_thash.c
+++ b/lib/hash/rte_thash.c
@@ -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];
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
next prev parent reply other threads:[~2024-04-18 10:34 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 10:33 [RFC 0/6] core libs: " Konstantin Ananyev
2024-04-18 10:33 ` [RFC 1/6] eal/linux: " Konstantin Ananyev
2024-04-19 12:23 ` Morten Brørup
2024-04-18 10:33 ` [RFC 2/6] eal/common: " Konstantin Ananyev
2024-04-19 11:54 ` Morten Brørup
2024-04-18 10:33 ` [RFC 3/6] ethdev: " Konstantin Ananyev
2024-04-19 12:06 ` Morten Brørup
2024-04-18 10:33 ` [RFC 4/6] hash: " Konstantin Ananyev
2024-04-19 12:08 ` Morten Brørup
2024-04-18 10:33 ` Konstantin Ananyev [this message]
2024-04-19 12:17 ` [RFC 5/6] hash/thash: " Morten Brørup
2024-04-19 12:53 ` Konstantin Ananyev
2024-04-19 13:10 ` Morten Brørup
2024-04-18 10:33 ` [RFC 6/6] rcu: " Konstantin Ananyev
2024-04-19 12:21 ` Morten Brørup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240418103314.40705-6-konstantin.v.ananyev@yandex.ru \
--to=konstantin.v.ananyev@yandex.ru \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=konstantin.ananyev@huawei.com \
--cc=roretzla@linux.microsoft.com \
--cc=sameh.gobriel@intel.com \
--cc=thomas@monjalon.net \
--cc=vladimir.medvedkin@intel.com \
--cc=yipeng1.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).