diff options
author | Yisheng Xie <xieyisheng1@huawei.com> | 2016-10-18 10:33:13 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-10-18 11:11:17 -0400 |
commit | 0709a008c9fadc176500ece7395b8b5b8de143e3 (patch) | |
tree | ce3f2ec2d413da9e432d4f370d550045fb7bf784 /drivers/firmware | |
parent | 10714dd37aa7ebb165677b9a793448950ff366ad (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.c | 4 |
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(); |