nfp: Use static_assert() to check struct sizes
authorGustavo A. R. Silva <gustavoars@kernel.org>
Thu, 8 Aug 2024 22:08:35 +0000 (16:08 -0600)
committerJakub Kicinski <kuba@kernel.org>
Tue, 13 Aug 2024 01:40:44 +0000 (18:40 -0700)
Commit d88cabfd9abc ("nfp: Avoid -Wflex-array-member-not-at-end
warnings") introduced tagged `struct nfp_dump_tl_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.

So, 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>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/ZrVB43Hen0H5WQFP@cute
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/netronome/nfp/nfp_net_debugdump.c

index 2dd37557185e9abfe59238c47c9bbac821e8d6b6..7276e44a21d09ec5037ddb4d51b35bb037c502b5 100644 (file)
@@ -41,6 +41,8 @@ struct nfp_dump_tl {
        );
        char data[];
 };
+static_assert(offsetof(struct nfp_dump_tl, data) == sizeof(struct nfp_dump_tl_hdr),
+             "struct member likely outside of struct_group_tagged()");
 
 /* NFP CPP parameters */
 struct nfp_dumpspec_cpp_isl_id {