crypto: qat - Use static_assert() to check struct sizes
authorGustavo A. R. Silva <gustavoars@kernel.org>
Thu, 8 Aug 2024 22:05:26 +0000 (16:05 -0600)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 17 Aug 2024 05:55:50 +0000 (13:55 +0800)
Commit 140e4c85d540 ("crypto: qat - Avoid -Wflex-array-member-not-at-end
warnings") introduced tagged `struct qat_alg_buf_list_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>
Acked-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/qat_bl.h

index 85bc32a..3f5b790 100644 (file)
@@ -23,6 +23,8 @@ struct qat_alg_buf_list {
        );
        struct qat_alg_buf buffers[];
 } __packed;
+static_assert(offsetof(struct qat_alg_buf_list, buffers) == sizeof(struct qat_alg_buf_list_hdr),
+             "struct member likely outside of __struct_group()");
 
 struct qat_alg_fixed_buf_list {
        struct qat_alg_buf_list_hdr sgl_hdr;