From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755986AbeCHSfC (ORCPT ); Thu, 8 Mar 2018 13:35:02 -0500 Received: from mail-it0-f68.google.com ([209.85.214.68]:39672 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755625AbeCHSfA (ORCPT ); Thu, 8 Mar 2018 13:35:00 -0500 X-Google-Smtp-Source: AG47ELvpI6PHjCJB/HiitfyTc+WdXXi75MBKK4+Y6U24uh+XyJ+U50L9pQhyCtdU5Sg1XoD0ljrhpVNcXflpYf6vS4U= MIME-Version: 1.0 In-Reply-To: References: <1519414953-5478-1-git-send-email-tbaicar@codeaurora.org> <1519414953-5478-2-git-send-email-tbaicar@codeaurora.org> <20180224072054.GA3264@dhcp-128-65.nay.redhat.com> From: Ard Biesheuvel Date: Thu, 8 Mar 2018 18:34:58 +0000 Message-ID: Subject: Re: [PATCH 1/2] efi/esrt: fix unsupported version initialization failure To: Tyler Baicar , Peter Jones Cc: Dave Young , linux-efi@vger.kernel.org, Linux Kernel Mailing List , Jeff Hugo , Sameer Goel , AKASHI Takahiro , Timur Tabi Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8 March 2018 at 18:15, Ard Biesheuvel wrote: > On 8 March 2018 at 18:00, Ard Biesheuvel wrote: >> On 8 March 2018 at 16:11, Tyler Baicar wrote: >>> On 2/24/2018 2:20 AM, Dave Young wrote: >>>> >>>> On 02/23/18 at 12:42pm, Tyler Baicar wrote: >>>>> >>>>> If ESRT initialization fails due to an unsupported version, the >>>>> early_memremap allocation is never unmapped. This will cause an >>>>> early ioremap leak. So, make sure to unmap the memory allocation >>>>> before returning from efi_esrt_init(). >>>>> >>>>> Signed-off-by: Tyler Baicar >>>>> --- >>>>> drivers/firmware/efi/esrt.c | 2 +- >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c >>>>> index c47e0c6..504f3c3 100644 >>>>> --- a/drivers/firmware/efi/esrt.c >>>>> +++ b/drivers/firmware/efi/esrt.c >>>>> @@ -285,7 +285,7 @@ void __init efi_esrt_init(void) >>>>> } else { >>>>> pr_err("Unsupported ESRT version %lld.\n", >>>>> tmpesrt.fw_resource_version); >>>>> - return; >>>>> + goto err_memunmap; >>>>> } >>>>> if (tmpesrt.fw_resource_count > 0 && max - size < entry_size) { >>>>> -- >>>> >>>> Reviewed-by: Dave Young >>> >>> Thank you Dave for your review here and input on the other patch. >>> >>> Ard, >>> >>> Can this patch be picked up? I understand patch 2 is not acceptable, but >>> this one should >>> be good to go I think. >>> >> >> Yeah you're right. I'll pick it up as a bugfix. > > Actually, on second thought, could you respin this patch, and just > move the memunamp() to right after the memcpy()? That way, we can get > rid of all the 'goto err_memunmap's afaict > OK, now I'm confused. Does anyone have a clue why in efi_esrt_init() the memremap() is done a second time? AFAICT it just reserves the region, it does not actually access the second mapping at all.