The GetMemoryMap() boot service takes a pointer to an efi_uintn_t for
the map key. Passing a pointer to an unsigned long fails to compile on
32-bit architectures, where efi_uintn_t is 32-bit:

  efi/payload/iomem.c:161:45: error: passing argument 3 of
  'BS->get_memory_map' from incompatible pointer type

Use the correct type.

Assisted-by: Claude:fable-5
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 efi/payload/iomem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efi/payload/iomem.c b/efi/payload/iomem.c
index 8b92dc47a7b9..515bf05233f8 100644
--- a/efi/payload/iomem.c
+++ b/efi/payload/iomem.c
@@ -148,7 +148,7 @@ static int efi_barebox_populate_mmap(void)
        void *mmap_buf = NULL, *desc;
        efi_status_t efiret;
        size_t mmap_size;
-       ulong mapkey;
+       efi_uintn_t mapkey;
        size_t descsz;
        u32 descver;
        int ret = 0;
-- 
2.47.3


Reply via email to