]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
efi/arm*: Fix efi_init() error handling
authorYisheng Xie <xieyisheng1@huawei.com>
Tue, 18 Oct 2016 14:33:13 +0000 (15:33 +0100)
committerIngo Molnar <mingo@kernel.org>
Tue, 18 Oct 2016 15:11:17 +0000 (17:11 +0200)
There's an early memmap() leak in the efi_init() error path, fix it.

Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20161018143318.15673-4-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
drivers/firmware/efi/arm-init.c

index 8efe13075c922e6b79131af4af2d897245b94a42..f853ad2c4ca0a7d42d888cbd95844d6b132eb925 100644 (file)
@@ -244,8 +244,10 @@ void __init efi_init(void)
             "Unexpected EFI_MEMORY_DESCRIPTOR version %ld",
              efi.memmap.desc_version);
 
-       if (uefi_init() < 0)
+       if (uefi_init() < 0) {
+               efi_memmap_unmap();
                return;
+       }
 
        reserve_regions();
        efi_memattr_init();