Skip to content
  • Lenny Szubowicz's avatar
    efi/libstub/x86: Avoid EFI map buffer alloc in allocate_e820() · fd626195
    Lenny Szubowicz authored
    
    
    In allocate_e820(), call the EFI get_memory_map() service directly
    instead of indirectly via efi_get_memory_map(). This avoids allocation
    of a buffer and return of the full EFI memory map, which is not needed
    here and would otherwise need to be freed.
    
    Routine allocate_e820() only needs to know how many EFI memory
    descriptors there are in the map to allocate an adequately sized
    e820ext buffer, if it's needed. Note that since efi_get_memory_map()
    returns a memory map buffer sized with extra headroom, allocate_e820()
    now needs to explicitly factor that into the e820ext size calculation.
    
    Signed-off-by: default avatarLenny Szubowicz <lszubowi@redhat.com>
    Suggested-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    fd626195