efi_loader: Simplify efi_free_pages()

We currently call efi_free_pages() with a notify flag and explicitly
update the efi memory map. That's not needed as lmb_free_flags() will do
that for us if the LMB_NONOTIFY flag is removed

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Ilias Apalodimas
2024-10-24 14:01:55 +03:00
committed by Heinrich Schuchardt
parent a464a27017
commit 4588ab9976

View File

@@ -521,7 +521,6 @@ efi_status_t efi_allocate_pages(enum efi_allocate_type type,
efi_status_t efi_free_pages(uint64_t memory, efi_uintn_t pages)
{
u64 len;
uint flags;
long status;
efi_status_t ret;
@@ -536,18 +535,17 @@ efi_status_t efi_free_pages(uint64_t memory, efi_uintn_t pages)
return EFI_INVALID_PARAMETER;
}
flags = LMB_NOOVERWRITE | LMB_NONOTIFY;
len = (u64)pages << EFI_PAGE_SHIFT;
/*
* The 'memory' variable for sandbox holds a pointer which has already
* been mapped with map_sysmem() from efi_allocate_pages(). Convert
* it back to an address LMB understands
*/
status = lmb_free_flags(map_to_sysmem((void *)(uintptr_t)memory), len,
flags);
LMB_NOOVERWRITE);
if (status)
return EFI_NOT_FOUND;
ret = efi_add_memory_map_pg(memory, pages, EFI_CONVENTIONAL_MEMORY,
false);
if (ret != EFI_SUCCESS)
return EFI_NOT_FOUND;
return ret;
}