efi_loader: efi_allocate_pages is too restrictive
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 18 Jun 2018 15:23:02 +0000 (17:23 +0200)
committerAlexander Graf <agraf@suse.de>
Wed, 25 Jul 2018 12:57:43 +0000 (14:57 +0200)
When running on the sandbox the stack is not necessarily at a higher memory
address than the highest free memory.

There is no reason why the checking of the highest memory address should be
more restrictive for EFI_ALLOCATE_ANY_PAGES than for
EFI_ALLOCATE_MAX_ADDRESS.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
[agraf: use -1ULL instead]
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_memory.c

index ec66af98ea8f765e9be2dde26682f4c5c9379ad6..ce29bcc6a3030d9260bb514c712908a62cd2ef34 100644 (file)
@@ -295,7 +295,7 @@ efi_status_t efi_allocate_pages(int type, int memory_type,
        switch (type) {
        case EFI_ALLOCATE_ANY_PAGES:
                /* Any page */
-               addr = efi_find_free_memory(len, gd->start_addr_sp);
+               addr = efi_find_free_memory(len, -1ULL);
                if (!addr) {
                        r = EFI_NOT_FOUND;
                        break;