From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933654AbcIEN5b (ORCPT ); Mon, 5 Sep 2016 09:57:31 -0400 Received: from mail-wm0-f49.google.com ([74.125.82.49]:36202 "EHLO mail-wm0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933573AbcIEN50 (ORCPT ); Mon, 5 Sep 2016 09:57:26 -0400 Date: Mon, 5 Sep 2016 14:57:23 +0100 From: Matt Fleming To: Will Deacon Cc: Xie Yisheng , mingo@kernel.org, guohanjun@huawei.com, mark.rutland@arm.com, catalin.marinas@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-efi@vger.kernel.org, ard.biesheuvel@linaro.org Subject: Re: [PATCH] arm64/efi: efi_init error handling fix Message-ID: <20160905135723.GK32579@codeblueprint.co.uk> References: <1472811519-4897-1-git-send-email-xieyisheng1@huawei.com> <20160902102618.GC17482@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160902102618.GC17482@arm.com> User-Agent: Mutt/1.5.24+41 (02bc14ed1569) (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 02 Sep, at 11:26:18AM, Will Deacon wrote: > On Fri, Sep 02, 2016 at 06:18:39PM +0800, Xie Yisheng wrote: > > From: Yisheng Xie > > > > There's an early memmap leak in efi_init error path, fix it. > > > > Signed-off-by: Yisheng Xie > > --- > > drivers/firmware/efi/arm-init.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > Adding linux-efi, Ard and Matt. Please try to CC the relevant people in > future. > > Will > > > diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c > > index c49d50e..5080e40 100644 > > --- a/drivers/firmware/efi/arm-init.c > > +++ b/drivers/firmware/efi/arm-init.c > > @@ -243,8 +243,10 @@ void __init efi_init(void) > > "Unexpected EFI_MEMORY_DESCRIPTOR version %ld", > > efi.memmap.desc_version); > > > > - if (uefi_init() < 0) > > + if (uefi_init() < 0) { > > + early_memunmap(efi.memmap.map, params.mmap_size); > > return; > > + } This should be a call to efi_memmap_unmap() because the EFI_MEMMAP flag also needs clearing.