Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp599544ybz; Fri, 24 Apr 2020 06:10:02 -0700 (PDT) X-Google-Smtp-Source: APiQypIwN9x9E60t7YJuh1PKaQSxsDBvN16ExVg8+YWLQQXw0sXX83lJHTWSRGEXwS5sCzD++eBN X-Received: by 2002:a17:906:35cd:: with SMTP id p13mr7353787ejb.206.1587733802033; Fri, 24 Apr 2020 06:10:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587733802; cv=none; d=google.com; s=arc-20160816; b=kbaH5J7gR7Qy3+xEsRKpg7n/nEiqoF+mZxo5iETTnHHQx8Xlp+itYVl2vwMWRCf/mU qLsSjIxp4eHqHkfEek4g7dRzPkrYa8JghuyFBN96S+i3pKE0B/OCOMFWWnOGNRikWlWc QpLxp/LK9W40l6e6e4HG2pm5wXGh/hzSbRGnLA6yd9YRhw9IU1mw3s3xyMeq2SCGAIPw H6PS0wRZn519u3MangRkeRMXn/B2sHXa5Mxh63yJb1n3iyUINeMDgVmfxO06WM6gLykA gQWxARUXWaVkIXG+UzqNSdPU0uY2GxMxTavq8bDBU6B1PDOkbrnT2JZyao7Z6hnWYpP1 C9cA== 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; bh=ELdjRVuXyRFV4vIl6AkwDiAlrANxE77slszclhVnF5Y=; b=M+mZbTdqqzQhRYtbPxLAOs0LkJOAdU6jI862lMSBt8ewAcy8xK5cCUz946wKNLQVV1 ZvwWiiTF3S1pJcowsFjL1iSaYphxwErEeB7fsNMiJtaCYbOlhVn/qR87z6gyPBbq/rur epzGLi/IzkChtkyLeodaP3o9UjTpfaGCjMhB/RSjbeG3ay4aQGnDNBc3TyjsORcwDeER IXbFBQT8kMVe4BScrKwIjWigvhEuhc8AsCSz/L6HA06G2xoPg9RT57ED2jgpQATQuItN SKbMFO93ieZi2UrnaPxqVDGLbkt1HGgfNpnvvj+mdRq+Q7uf7MrHD00wZJeqr0yl0YZT omMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rI6WnrIR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x25si2947663ejs.434.2020.04.24.06.09.34; Fri, 24 Apr 2020 06:10:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rI6WnrIR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728260AbgDXNHK (ORCPT + 99 others); Fri, 24 Apr 2020 09:07:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:57752 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728230AbgDXNHE (ORCPT ); Fri, 24 Apr 2020 09:07:04 -0400 Received: from e123331-lin.home (amontpellier-657-1-18-247.w109-210.abo.wanadoo.fr [109.210.65.247]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8F55C20728; Fri, 24 Apr 2020 13:07:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587733624; bh=3Fh3BffeAc7NkYh1mfmRJ9kkzBxnlWD78shHS+Df4II=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rI6WnrIRr/J9d5C0RJFP9SOZuTELgaxTmEfTG6iQizhWIBBxtCdvxFLMP02SqvyU4 6PBs14MEOzt0njqKX67itrSfDFEysotV8yDg327WmbJoN7/Jo30komyemNteGMkzs7 AAttOUCUlhdMWsdwjvp3+FRnqsv1tBc1LQmYGsv8= From: Ard Biesheuvel To: linux-efi@vger.kernel.org, Ingo Molnar , Thomas Gleixner Cc: Ard Biesheuvel , linux-kernel@vger.kernel.org, Arvind Sankar , Atish Patra , Palmer Dabbelt , Zou Wei Subject: [PATCH 24/33] efi/libstub/arm64: Switch to ordinary page allocator for kernel image Date: Fri, 24 Apr 2020 15:05:22 +0200 Message-Id: <20200424130531.30518-25-ardb@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200424130531.30518-1-ardb@kernel.org> References: <20200424130531.30518-1-ardb@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is no longer necessary to locate the kernel as low as possible in physical memory, and so we can switch from efi_low_alloc() [which is a rather nasty concoction on top of GetMemoryMap()] to a new helper called efi_allocate_pages_aligned(), which simply rounds up the size to account for the alignment, and frees the misaligned pages again. So considering that the kernel can live anywhere in the physical address space, as long as its alignment requirements are met, let's switch to efi_allocate_pages_aligned() to allocate the pages. Signed-off-by: Ard Biesheuvel --- drivers/firmware/efi/libstub/arm64-stub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/libstub/arm64-stub.c b/drivers/firmware/efi/libstub/arm64-stub.c index 6fc3bd9a56db..99b67e88a33b 100644 --- a/drivers/firmware/efi/libstub/arm64-stub.c +++ b/drivers/firmware/efi/libstub/arm64-stub.c @@ -98,8 +98,8 @@ efi_status_t handle_kernel_image(unsigned long *image_addr, return EFI_SUCCESS; } - status = efi_low_alloc(*reserve_size, - min_kimg_align, reserve_addr); + status = efi_allocate_pages_aligned(*reserve_size, reserve_addr, + ULONG_MAX, min_kimg_align); if (status != EFI_SUCCESS) { pr_efi_err("Failed to relocate kernel\n"); -- 2.17.1