lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 21 Dec 2016 14:11:38 +0100
From:   Petr Oros <poros@...hat.com>
To:     matt@...eblueprint.co.uk
Cc:     ard.biesheuvel@...aro.org, tglx@...utronix.de, mingo@...hat.com,
        hpa@...or.com, x86@...nel.org, linux-efi@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: [PATCH] x86/efi Fix regression in efi_arch_mem_reserve

  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@...hat.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ