-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.

Use the `DEFINE_RAW_FLEX()` helper for on-stack definitions of
a flexible structure where the size of the flexible-array member
is known at compile-time, and refactor the rest of the code,
accordingly.

So, with these changes, fix the following warning:

drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c:163:36: 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 <[email protected]>
---
 .../net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c   | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c 
b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
index 4036db466e18..ee19933e2cca 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
@@ -159,19 +159,13 @@ static u8 tcp_state_to_flowc_state(u8 state)
 int send_tx_flowc_wr(struct sock *sk, int compl,
                     u32 snd_nxt, u32 rcv_nxt)
 {
-       struct flowc_packed {
-               struct fw_flowc_wr fc;
-               struct fw_flowc_mnemval mnemval[FW_FLOWC_MNEM_MAX];
-       } __packed sflowc;
+       DEFINE_RAW_FLEX(struct fw_flowc_wr, flowc, mnemval, FW_FLOWC_MNEM_MAX);
        int nparams, paramidx, flowclen16, flowclen;
-       struct fw_flowc_wr *flowc;
        struct chtls_sock *csk;
        struct tcp_sock *tp;
 
        csk = rcu_dereference_sk_user_data(sk);
        tp = tcp_sk(sk);
-       memset(&sflowc, 0, sizeof(sflowc));
-       flowc = &sflowc.fc;
 
 #define FLOWC_PARAM(__m, __v) \
        do { \
-- 
2.43.0


Reply via email to