Message ID | ZrVCg51Q9M2fTPaF@cute |
---|---|
State | New |
Headers | show |
Series | [next] wifi: mwl8k: Use static_assert() to check struct sizes | expand |
"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote: > 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 <gustavoars@kernel.org> Patch applied to wireless-next.git, thanks. 748e21d94a34 wifi: mwl8k: Use static_assert() to check struct sizes
diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c index b130e057370f..bab9ef37a1ab 100644 --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c @@ -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.
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 <gustavoars@kernel.org> --- drivers/net/wireless/marvell/mwl8k.c | 3 +++ 1 file changed, 3 insertions(+)