[PATCH 07/40] efi: Correct call to write_acpi_tables()
Heinrich Schuchardt
xypron.glpk at gmx.de
Wed Dec 1 18:59:11 CET 2021
On 12/1/21 17:02, Simon Glass wrote:
> This must be passed a ulong, not a u64. Fix it to avoid LTO warnings on
> sandbox.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> lib/efi_loader/efi_acpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_acpi.c b/lib/efi_loader/efi_acpi.c
> index a62c34009cc..016bbf6db33 100644
> --- a/lib/efi_loader/efi_acpi.c
> +++ b/lib/efi_loader/efi_acpi.c
> @@ -34,7 +34,7 @@ efi_status_t efi_acpi_register(void)
> * a 4k-aligned address, so it is safe to assume that
> * write_acpi_tables() will write the table at that address.
> */
> - write_acpi_tables(acpi);
> + write_acpi_tables((ulong)acpi);
This is wrong: acpi is not an address in the virtual address space of
the sandbox. You must not pass it to use map_sysmem() to convert it to a
pointer.
Please change the parameter of write_acpi_tables() to be a pointer and
move all sandbox specific conversions to the sandbox code.
Best regards
Heinrich
>
> /* And expose them to our EFI payload */
> return efi_install_configuration_table(&acpi_guid,
>
More information about the U-Boot
mailing list