From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6FF4C433F5 for ; Thu, 16 Dec 2021 19:25:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B1E96B007D; Thu, 16 Dec 2021 14:23:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 95FE36B007E; Thu, 16 Dec 2021 14:23:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 828166B0080; Thu, 16 Dec 2021 14:23:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0188.hostedemail.com [216.40.44.188]) by kanga.kvack.org (Postfix) with ESMTP id 7419F6B007D for ; Thu, 16 Dec 2021 14:23:46 -0500 (EST) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 3034C181AC9CC for ; Thu, 16 Dec 2021 19:23:36 +0000 (UTC) X-FDA: 78924631632.12.3698D93 Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf09.hostedemail.com (Postfix) with ESMTP id 6BBDB140011 for ; Thu, 16 Dec 2021 19:23:32 +0000 (UTC) Received: by mail-qt1-f172.google.com with SMTP id q14so244511qtx.10 for ; Thu, 16 Dec 2021 11:23:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eclypsium.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AYRnV1Ist1vARSPSnF2rw/yrtuWCrI0ayDUHb4fDzqo=; b=NqdUyJ0fkymx2bWJQqVppi5GHARZFYiofUfvh7C/vceya1eazbzPrH2fBj+hVh20/8 7O+pBl4+8E3mEdBNVIwU1F8mFjKcQOLpF1ypjahvUReRTnriZphkIQFZ90UCOAl1t2qu E/LFk6NoEWloNdXo663jzI8YtCtuXLm32wrs5LvEcNC/5O58nftOwEaLnqjMjdlTEjfn d9b70QaFBMywS6+AEJ1zLavVJ38f/ZoiWEcMxU8+gNMece0UlRw42450a5panFd3Us98 V3btDBbUvaN5vrBqeF3gi7f017VzHn8v22PNDZs8EIKLfukpTXS20jFimgOpA2YXFUcY pdAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AYRnV1Ist1vARSPSnF2rw/yrtuWCrI0ayDUHb4fDzqo=; b=lToLXBmzvkl9I8F/WHbOel6IL9qPmlpzZQ/JMI3gex+ZDcbv9Al5ldED4t6+6IQ6Px Vs6Nf9ChEVbBdZTVM2kgzv+QVvPJL/YrT17sfrsrmQpB4vwHenOYJflPkr9g8tIFi1ap HtR2eTsG/jY4vFwwX9GjopXhFzRW2hGh2QDe7BG9MeKyZ/S44wAsVxoVnbP9ctenAYTE oPQ+S7OAxkvLr/ClqZkeAmI4FS9N9paIwoPxa2n6W42VSSq6gm7oXaExD0YMhHKn/ijF tH5ITSvIjhkMOeu3ZbgWFY5HR1zQ3NW65aGrWI/UyFjA2t4ayXO2G+V8UjE/9byNxbfC ZfKg== X-Gm-Message-State: AOAM532N6pwxo4rw8nZhLW4Lo7xLvIbj7i+0GOQtfNuVuCRz6ZuAh7zV yyLVHomjrHLpAyjB0kyldxGUFg== X-Google-Smtp-Source: ABdhPJzrATHu7/Qb3mo5AZkbwLUvNkMIaupJj2XmlMygFBz8HXJMDQ6R+KamB+AhkTshWyuZJkoqPQ== X-Received: by 2002:ac8:7d83:: with SMTP id c3mr18685008qtd.359.1639682615191; Thu, 16 Dec 2021 11:23:35 -0800 (PST) Received: from localhost (7-153-16-190.fibertel.com.ar. [190.16.153.7]) by smtp.gmail.com with ESMTPSA id j9sm3351985qkp.111.2021.12.16.11.23.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Dec 2021 11:23:34 -0800 (PST) From: Martin Fernandez To: linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-mm@kvack.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, ardb@kernel.org, dvhart@infradead.org, andy@infradead.org, gregkh@linuxfoundation.org, rafael@kernel.org, rppt@kernel.org, akpm@linux-foundation.org, daniel.gutson@eclypsium.com, hughsient@gmail.com, alex.bazhaniuk@eclypsium.com, alison.schofield@intel.com, Martin Fernandez Subject: [PATCH v4 4/5] x86/efi: Tag e820_entries as crypto capable from EFI memmap Date: Thu, 16 Dec 2021 16:22:21 -0300 Message-Id: <20211216192222.127908-5-martin.fernandez@eclypsium.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211216192222.127908-1-martin.fernandez@eclypsium.com> References: <20211216192222.127908-1-martin.fernandez@eclypsium.com> MIME-Version: 1.0 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 6BBDB140011 X-Stat-Signature: i59qeeehcomqn1aex81e5ydsn15rw65z Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=eclypsium.com header.s=google header.b=NqdUyJ0f; dmarc=pass (policy=quarantine) header.from=eclypsium.com; spf=pass (imf09.hostedemail.com: domain of martin.fernandez@eclypsium.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=martin.fernandez@eclypsium.com X-HE-Tag: 1639682612-616525 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Add a function to iterate over the EFI Memory Map and mark the regions tagged with EFI_MEMORY_CPU_CRYPTO in the e820_table; and call it from efi_init if add_efi_memmap is disabled. Also modify do_add_efi_memmap to mark the regions there. Signed-off-by: Martin Fernandez --- arch/x86/platform/efi/efi.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 147c30a81f15..ce2f9d38fe36 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -184,6 +184,8 @@ static void __init do_add_efi_memmap(void) } =20 e820__range_add(start, size, e820_type); + if (md->attribute & EFI_MEMORY_CPU_CRYPTO) + e820__range_mark_as_crypto_capable(start, size); } e820__update_table(e820_table); } @@ -441,6 +443,23 @@ static int __init efi_config_init(const efi_config_t= able_type_t *arch_tables) return ret; } =20 +static void __init efi_mark_e820_regions_as_crypto_capable(void) +{ + efi_memory_desc_t *md; + + for_each_efi_memory_desc(md) { + if (md->attribute & EFI_MEMORY_CPU_CRYPTO) + e820__range_mark_as_crypto_capable(md->phys_addr, + md->num_pages << EFI_PAGE_SHIFT); + } + + /* + * We added and modified regions so it's good to update the + * table to merge/sort + */ + e820__update_table(e820_table); +} + void __init efi_init(void) { if (IS_ENABLED(CONFIG_X86_32) && @@ -494,6 +513,13 @@ void __init efi_init(void) set_bit(EFI_RUNTIME_SERVICES, &efi.flags); efi_clean_memmap(); =20 + /* + * If add_efi_memmap then there is no need to mark the regions + * again + */ + if (!add_efi_memmap) + efi_mark_e820_regions_as_crypto_capable(); + if (efi_enabled(EFI_DBG)) efi_print_memmap(); } --=20 2.30.2