wifi: mwl8k: Use static_assert() to check struct sizes
PATCH 1/1 wifi: mwl8k: Use static_assert() to check struct sizes
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.
--- drivers/net/wireless/marvell/mwl8k.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/net/wireless/marvell/mwl8k.c +3 -0
@@ -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.
Signature · 1 line
2.34.1
Quoted 10 lines · Gustavo A. R. Silva
Commit
5c4250092fad("wifi: mwl8k: Avoid -Wflex-array-member-not-at-end warnings") introduced taggedstruct 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]>
Patch applied to wireless-next.git, thanks.
748e21d94a34 wifi: mwl8k: Use static_assert() to check struct sizes
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/patch/ZrVCg51Q9M2fTPaF@cute/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches