sched: act_ct: avoid -Wflex-array-member-not-at-end warning
authorGustavo A. R. Silva <gustavoars@kernel.org>
Fri, 9 Aug 2024 15:22:12 +0000 (09:22 -0600)
committerJakub Kicinski <kuba@kernel.org>
Tue, 13 Aug 2024 00:54:24 +0000 (17:54 -0700)
-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.

Remove unnecessary flex-array member `pad[]` and refactor the related
code a bit.

Fix the following warning:
net/sched/act_ct.c:57:29: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://patch.msgid.link/ZrY0JMVsImbDbx6r@cute
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/act_ct.c

index 3ba8e7e..2197eb6 100644 (file)
@@ -44,8 +44,6 @@ static DEFINE_MUTEX(zones_mutex);
 struct zones_ht_key {
        struct net *net;
        u16 zone;
-       /* Note : pad[] must be the last field. */
-       u8  pad[];
 };
 
 struct tcf_ct_flow_table {
@@ -62,7 +60,7 @@ struct tcf_ct_flow_table {
 static const struct rhashtable_params zones_params = {
        .head_offset = offsetof(struct tcf_ct_flow_table, node),
        .key_offset = offsetof(struct tcf_ct_flow_table, key),
-       .key_len = offsetof(struct zones_ht_key, pad),
+       .key_len = offsetofend(struct zones_ht_key, zone),
        .automatic_shrinking = true,
 };