[PATCH] smbios: Fix warning when building with clang

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Nov 12 13:23:53 CET 2025


On Fri, 7 Nov 2025 at 01:28, Tom Rini <trini at konsulko.com> wrote:
>
> 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).
>
> Signed-off-by: Tom Rini <trini at konsulko.com>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>

> ---
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Raymond Mao <raymondmaoca at gmail.com>
> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>  include/smbios.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/smbios.h b/include/smbios.h
> index b5fed57aba21..f2f7483bce5a 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.43.0
>


More information about the U-Boot mailing list