From 2d226a735e0e9df2c017259c72cfd569986db480 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Thu, 6 Nov 2025 17:28:38 -0600 Subject: [PATCH] smbios: Fix warning when building with clang When building with clang, we see warnings such as: error: field max_size within 'struct smbios_type7' is less aligned than 'union cache_size_word' and is usually due to 'struct smbios_type7' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access] when building drivers/sysinfo/smbios.c. Resolve this error by packing the unions as well after verifying they are complete (16 or 32 bits). Reviewed-by: Raymond Mao Reviewed-by: Ilias Apalodimas Signed-off-by: Tom Rini --- include/smbios.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/smbios.h b/include/smbios.h index b5fed57aba2..f2f7483bce5 100644 --- a/include/smbios.h +++ b/include/smbios.h @@ -204,7 +204,7 @@ struct __packed smbios_type4 { char eos[SMBIOS_STRUCT_EOS_BYTES]; }; -union cache_config { +union __packed cache_config { struct { u16 level:3; u16 bsocketed:1; @@ -217,7 +217,7 @@ union cache_config { u16 data; }; -union cache_size_word { +union __packed cache_size_word { struct { u16 size:15; u16 granu:1; @@ -225,7 +225,7 @@ union cache_size_word { u16 data; }; -union cache_size_dword { +union __packed cache_size_dword { struct { u32 size:31; u32 granu:1; @@ -233,7 +233,7 @@ union cache_size_dword { u32 data; }; -union cache_sram_type { +union __packed cache_sram_type { struct { u16 other:1; u16 unknown:1; -- 2.47.3