In efi_add_known_memory() we currently call board_get_usable_ram_top() with
an incorrect value 0 of parameter total_size. This leads to an incorrect
value for ram_top depending on the code in board_get_usable_ram_top().

Use the value of gd->ram_top instead which is set before relocation by
calling board_get_usable_ram_top().

Fixes: 7b78d6438a2b ("efi_loader: Reserve unaccessible memory")
Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 lib/efi_loader/efi_memory.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
index ebf4a2d5fa..f752703b43 100644
--- a/lib/efi_loader/efi_memory.c
+++ b/lib/efi_loader/efi_memory.c
@@ -877,7 +877,7 @@ efi_status_t efi_add_conventional_memory_map(u64 ram_start, 
u64 ram_end,
  */
 __weak void efi_add_known_memory(void)
 {
-       u64 ram_top = board_get_usable_ram_top(0) & ~EFI_PAGE_MASK;
+       u64 ram_top = gd->ram_top & ~EFI_PAGE_MASK;
        int i;
 
        /*
-- 
2.40.1

Reply via email to