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 <[email protected]>
---

  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,


Reply via email to