diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-09-20 16:59:15 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-09-20 16:59:15 +0200 |
commit | 2ab78a724b1fd885b65199707b8e053677745457 (patch) | |
tree | 7df963b952195bf24031651e99e77f343752c11c /arch/x86/platform | |
parent | Merge branch 'efi/urgent' into efi/core, to pick up fixes (diff) | |
parent | x86/efi: Round EFI memmap reservations to EFI_PAGE_SIZE (diff) | |
download | linux-2ab78a724b1fd885b65199707b8e053677745457.tar.xz linux-2ab78a724b1fd885b65199707b8e053677745457.zip |
Merge tag 'efi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into efi/core
Pull EFI fix from Matt Fleming:
* Fix a boot crash reported by Mike Galbraith and Mike Krinkin. The
new EFI memory map reservation code didn't align reservations to
EFI_PAGE_SIZE boundaries causing bogus regions to be inserted into
the global EFI memory map (Matt Fleming)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/platform')
-rw-r--r-- | arch/x86/platform/efi/quirks.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c index f14b7a9da24b..10aca63a50d7 100644 --- a/arch/x86/platform/efi/quirks.c +++ b/arch/x86/platform/efi/quirks.c @@ -201,8 +201,12 @@ void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size) return; } + size += addr % EFI_PAGE_SIZE; + size = round_up(size, EFI_PAGE_SIZE); + addr = round_down(addr, EFI_PAGE_SIZE); + mr.range.start = addr; - mr.range.end = addr + size; + mr.range.end = addr + size - 1; mr.attribute = md.attribute | EFI_MEMORY_RUNTIME; num_entries = efi_memmap_split_count(&md, &mr.range); |