[PATCH v4 7/7] smbios: Require the caller to align the SMBIOS table

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Dec 27 12:12:10 CET 2023


Hi Simon,

I commented on v3 as well, but in case you miss that

On Wed, 27 Dec 2023 at 09:40, Simon Glass <sjg at chromium.org> wrote:
>
> All callers handle this alignment, so drop the unnecessary code. This
> simplifies things a little.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>
> (no changes since v1)
>
>  include/smbios.h | 5 +----
>  lib/smbios.c     | 2 --
>  2 files changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/include/smbios.h b/include/smbios.h
> index 77be58887a2..879b8a814b8 100644
> --- a/include/smbios.h
> +++ b/include/smbios.h
> @@ -258,12 +258,9 @@ static inline void fill_smbios_header(void *table, int type,
>   *
>   * This writes SMBIOS table at a given address.
>   *
> - * @addr:      start address to write SMBIOS table. If this is not
> - *             16-byte-aligned then it will be aligned before the table is
> - *             written.
> + * @addr:      start address to write SMBIOS table (must be 16-byte-aligned)
>   * Return:     end address of SMBIOS table (and start address for next entry)
>   *             or NULL in case of an error
> - *
>   */
>  ulong write_smbios_table(ulong addr);
>
> diff --git a/lib/smbios.c b/lib/smbios.c
> index 7f79d969c92..cfd451e4088 100644
> --- a/lib/smbios.c
> +++ b/lib/smbios.c
> @@ -563,8 +563,6 @@ ulong write_smbios_table(ulong addr)
>                 ctx.dev = NULL;
>         }
>
> -       /* 16 byte align the table address */
> -       addr = ALIGN(addr, 16);

I think this is wrong.  It will break SMBIOS on a user error. I am
fine replacing that with a check instead and error out if the address
is not 16b aligned

Thanks
/Ilias
>         start_addr = addr;
>
>         /*
> --
> 2.34.1
>


More information about the U-Boot mailing list