aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware
diff options
context:
space:
mode:
authorYisheng Xie <xieyisheng1@huawei.com>2016-10-18 10:33:13 -0400
committerIngo Molnar <mingo@kernel.org>2016-10-18 11:11:17 -0400
commit0709a008c9fadc176500ece7395b8b5b8de143e3 (patch)
treece3f2ec2d413da9e432d4f370d550045fb7bf784 /drivers/firmware
parent10714dd37aa7ebb165677b9a793448950ff366ad (diff)
efi/arm*: Fix efi_init() error handling
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>
Diffstat (limited to 'drivers/firmware')
-rw-r--r--drivers/firmware/efi/arm-init.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c
index 8efe13075c92..f853ad2c4ca0 100644
--- a/drivers/firmware/efi/arm-init.c
+++ b/drivers/firmware/efi/arm-init.c
@@ -244,8 +244,10 @@ void __init efi_init(void)
244 "Unexpected EFI_MEMORY_DESCRIPTOR version %ld", 244 "Unexpected EFI_MEMORY_DESCRIPTOR version %ld",
245 efi.memmap.desc_version); 245 efi.memmap.desc_version);
246 246
247 if (uefi_init() < 0) 247 if (uefi_init() < 0) {
248 efi_memmap_unmap();
248 return; 249 return;
250 }
249 251
250 reserve_regions(); 252 reserve_regions();
251 efi_memattr_init(); 253 efi_memattr_init();