]> Git Repo - linux.git/commitdiff
wifi: mwl8k: Use static_assert() to check struct sizes
authorGustavo A. R. Silva <[email protected]>
Thu, 8 Aug 2024 22:11:15 +0000 (16:11 -0600)
committerKalle Valo <[email protected]>
Tue, 13 Aug 2024 09:57:58 +0000 (12:57 +0300)
Commit 5c4250092fad ("wifi: mwl8k: Avoid -Wflex-array-member-not-at-end
warnings") introduced tagged `struct mwl8k_cmd_pkt_hdr`. We want to
ensure that when new members need to be added to the flexible structure,
they are always included within this tagged struct.

We use `static_assert()` to ensure that the memory layout for both
the flexible structure and the tagged struct is the same after any
changes.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://patch.msgid.link/ZrVCg51Q9M2fTPaF@cute
drivers/net/wireless/marvell/mwl8k.c

index b130e057370f43c9b47df3777c7ef25fd2900b38..bab9ef37a1ab80e83e2426b27db842a80f01e413 100644 (file)
@@ -587,6 +587,7 @@ static int mwl8k_request_firmware(struct mwl8k_priv *priv, char *fw_image,
 }
 
 struct mwl8k_cmd_pkt {
+       /* New members MUST be added within the __struct_group() macro below. */
        __struct_group(mwl8k_cmd_pkt_hdr, hdr, __packed,
                __le16  code;
                __le16  length;
@@ -596,6 +597,8 @@ struct mwl8k_cmd_pkt {
        );
        char payload[];
 } __packed;
+static_assert(offsetof(struct mwl8k_cmd_pkt, payload) == sizeof(struct mwl8k_cmd_pkt_hdr),
+             "struct member likely outside of __struct_group()");
 
 /*
  * Firmware loading.
This page took 0.073591 seconds and 4 git commands to generate.