lkml.org 
[lkml]   [2016]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] x86/efi Fix regression in efi_arch_mem_reserve
Date
  Booting on EFI with ESRT table has been stop since commit:
8e80632 efi/esrt: Use efi_mem_reserve() and avoid a kmalloc()

This is caused by this commit:
816e761 efi: Allow drivers to reserve boot services forever

Problem is, that efi_memmap_insert need memory aligned
on EFI_PAGE_SIZE. If memory not aligned, efi_memmap_insert
just return and let efi.memmap in inconsistent state.
This breaking boot.

Tested in my machine, which stop booting
after upgrade to 4.9

Signed-off-by: Petr Oros <poros@redhat.com>
---
arch/x86/platform/efi/quirks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
index 10aca63..7678857 100644
--- a/arch/x86/platform/efi/quirks.c
+++ b/arch/x86/platform/efi/quirks.c
@@ -214,7 +214,7 @@ void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size)

new_size = efi.memmap.desc_size * num_entries;

- new_phys = memblock_alloc(new_size, 0);
+ new_phys = memblock_alloc(new_size, EFI_PAGE_SIZE);
if (!new_phys) {
pr_err("Could not allocate boot services memmap\n");
return;
--
2.10.2
\
 
 \ /
  Last update: 2016-12-21 14:12    [W:0.041 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site