From patchwork Mon Jul 9 23:42:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 141495 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp3205174ljj; Mon, 9 Jul 2018 16:42:19 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdfHvnYMOtgD6xdH4km6GB7UzPYkTJaLLQIyFcArscLaSRNm89kAPvhaczl4al7tFJiriY9 X-Received: by 2002:a17:902:9a08:: with SMTP id v8-v6mr22620380plp.148.1531179739300; Mon, 09 Jul 2018 16:42:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531179739; cv=none; d=google.com; s=arc-20160816; b=OGMVsY7SqdpdNY+yA/LxyzQXK7hizy4Y0dk51qcRcRM/A3xpiz44vqYVtVVX4+EHXQ Tm2EhA0VqriaYtOp2UrJja8gEeDrUtZiadVbWhnuGeEtaQBVNsd/lHqgYCXQqUJmOJZN 650tmSxxbZvyhjWF6XflXJv9GX4SodubiFD0qKsojSeppL8E6WS6JLBHnQSqvIxgimv3 +KzJkke6EcRHF2tIwRnqeE+QZQPbxNS3jbTlUB/gpnvR9HdoqG/nHtVGZlyoAHHUeXnG qbYNg0f8T5kHhImEvxaM0UyNTpphRYvZeg2hTp19TBG8c3EkNOQ82TRB2YLDaXycD1nN FMsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=G2uAeoq4DfhThX9UGnhckbXMfikniIsoGM7JqtwAgeE=; b=bztaHEAET4/GcgUw++/2kZTTPHk4ThK33D407uMlfG1n5dApEcDi9f8Yo7MTdn/XWn wCmrJ/Z7d2tZD/9r0Ds9BvQzrLr1lGaczt/78+O0U/RqOC9icDamrotQn/UzpWC6Hzjc TcWKpHa9bfxyjygn9WxgyMhal+mmmCjOL1o3Qzv5gHebVzKdYrQiySRmaED/QmwOsHiR okG43zEbFI2DOdSRgZur/7f7Ox4TlOX/p/u9dZogGAfh7L5xLZtW83ZZ9Xxu9vcnuglH 2Nx/YIHZCJub0yxWkR4kbwjmrMJXIRg8+VoP+iaL2z6V++PdEFBMpuBX3GREXcj6WbXZ oNUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BlhWdrQd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v4-v6si15510269pfm.151.2018.07.09.16.42.19; Mon, 09 Jul 2018 16:42:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BlhWdrQd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933379AbeGIXmN (ORCPT + 12 others); Mon, 9 Jul 2018 19:42:13 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:41477 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933313AbeGIXmI (ORCPT ); Mon, 9 Jul 2018 19:42:08 -0400 Received: by mail-pl0-f65.google.com with SMTP id w8-v6so6732605ply.8 for ; Mon, 09 Jul 2018 16:42:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=G2uAeoq4DfhThX9UGnhckbXMfikniIsoGM7JqtwAgeE=; b=BlhWdrQdQObN6Qd3dd/qLgvGSfL8WL8Iu/kO0R0s1i1ORgRCkiSEnJ2b0H15tEicAu +uxrPb9/wSnO2Xu2sQOgyoBb5GVibE8T26/BlDC9hEnBzvkW7zJ5ir0+Q8JPyl3W2wnB 9+yM5BgN++j3Cdz6f0+3JtJcDyAdatG5/QgHg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=G2uAeoq4DfhThX9UGnhckbXMfikniIsoGM7JqtwAgeE=; b=MjxJLDrM3tHuBVkPI/yFOfLIbHcGR0m5cQuWLySU1yHuB67PIGinCDoddFjpll3Q6o p+r7dFf8/fGUAOhzncQ5pDTvSbfKk5UA+SHA8JP3hvjiLFz5gUZueamUJIoQDfoThvX5 JBS0ze0dOonOncPV4BqHYBFenxDVu9wRBu9WCNmZoCMY9WaLPmq+tJFG9f/WoTJh7eY6 VczuW/tpWBBb6eBgwRvvHL+597h0JIZoncDKEAj5mRYArgDGcNniSHRoMsrvr8OSO1Nr bdBYH0FHLNhIPRL7RJeEbfYCoFvH3Qgpp/mXjnJjjffCwzFeksoWAV5v1+6rFgv4kSAg RqNg== X-Gm-Message-State: APt69E0Wk3fnp9ehrMHJTn3Deu+v7pWdiBeiFYOJQIeTNO2r95zxmZek NNpnTqDRXmB+nC8cBZAoBIi+AQ== X-Received: by 2002:a17:902:70c6:: with SMTP id l6-v6mr22415286plt.286.1531179728447; Mon, 09 Jul 2018 16:42:08 -0700 (PDT) Received: from linaro.org ([121.95.100.191]) by smtp.googlemail.com with ESMTPSA id h190-v6sm12823541pge.85.2018.07.09.16.42.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Jul 2018 16:42:07 -0700 (PDT) From: AKASHI Takahiro To: catalin.marinas@arm.com, will.deacon@arm.com, ard.biesheuvel@linaro.org Cc: tbaicar@codeaurora.org, bhsharma@redhat.com, dyoung@redhat.com, james.morse@arm.com, mark.rutland@arm.com, al.stone@linaro.org, graeme.gregory@linaro.org, hanjun.guo@linaro.org, lorenzo.pieralisi@arm.com, sudeep.holla@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kexec@lists.infradead.org Subject: [PATCH v3.1 2/4] efi/arm: preserve early mapping of UEFI memory map longer for BGRT Date: Tue, 10 Jul 2018 08:42:27 +0900 Message-Id: <20180709234229.20181-3-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180709234229.20181-1-takahiro.akashi@linaro.org> References: <20180709234229.20181-1-takahiro.akashi@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel The BGRT code validates the contents of the table against the UEFI memory map, and so it expects it to be mapped when the code runs. On ARM, this is currently not the case, since we tear down the early mapping after efi_init() completes, and only create the permanent mapping in arm_enable_runtime_services(), which executes as an early initcall, but still leaves a window where the UEFI memory map is not mapped. So move the call to efi_memmap_unmap() from efi_init() to arm_enable_runtime_services(). Signed-off-by: Ard Biesheuvel --- drivers/firmware/efi/arm-init.c | 1 - drivers/firmware/efi/arm-runtime.c | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) -- 2.17.0 Acked-by: James Morse diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c index b5214c143fee..388a929baf95 100644 --- a/drivers/firmware/efi/arm-init.c +++ b/drivers/firmware/efi/arm-init.c @@ -259,7 +259,6 @@ void __init efi_init(void) reserve_regions(); efi_esrt_init(); - efi_memmap_unmap(); memblock_reserve(params.mmap & PAGE_MASK, PAGE_ALIGN(params.mmap_size + diff --git a/drivers/firmware/efi/arm-runtime.c b/drivers/firmware/efi/arm-runtime.c index 5889cbea60b8..59a8c0ec94d5 100644 --- a/drivers/firmware/efi/arm-runtime.c +++ b/drivers/firmware/efi/arm-runtime.c @@ -115,6 +115,8 @@ static int __init arm_enable_runtime_services(void) return 0; } + efi_memmap_unmap(); + if (efi_runtime_disabled()) { pr_info("EFI runtime services will be disabled.\n"); return 0;