From nobody Tue Dec 16 16:41:19 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 923D1C4167B for ; Fri, 8 Dec 2023 17:18:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1574558AbjLHRS3 (ORCPT ); Fri, 8 Dec 2023 12:18:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235991AbjLHRSC (ORCPT ); Fri, 8 Dec 2023 12:18:02 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 281151BC3; Fri, 8 Dec 2023 09:17:32 -0800 (PST) Date: Fri, 08 Dec 2023 17:17:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1702055850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9CV/95Dz+kJafe/zMAcyTIZFYP04cBNpwb7zoOnZypY=; b=amNqOk+N/CVEc1VWPv0K4geuI7Hs0iPvVjq9NgHLKPCwmjX9lfSA38qtV0PwdSkx+zNsdN mySL4qfiBimt6QSoR3QFgqGuL1C3btMjFQu18OIsGu4zCxd7AnsJ+/r0fopoMbfXptP6Rj OzN7cnE2pypkYDjCESqg8Q4vS7cgyIXpSDHYjAipLJpojxzMo4fQl5HTPu3TEqwmtfr/Zb 24L35y7Ijg9n5LsjDsGgfAEbL2Rue2xNbFGyUynCFEpIbFo2DDtKMCYSNMnUwKmjIS80dI e3gWMg0mLIQy4qo59fzn94lPG1ka9E/HM3+FmWm0FPrthBrwHjUGEmYCiSZOtQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1702055850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9CV/95Dz+kJafe/zMAcyTIZFYP04cBNpwb7zoOnZypY=; b=ILJVGNab4OGD7YaDCtR81z+ldbhh9vRsXMIERPD3xtFLB1UIqTXSMo0jXUWVT1yuWvUOfv JQd62In6tK9LSbCw== From: "tip-bot2 for Kai Huang" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: x86/tdx] x86/virt/tdx: Define TDX supported page sizes as macros Cc: Kai Huang , Dave Hansen , "Kirill A. Shutemov" , David Hildenbrand , x86@kernel.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Message-ID: <170205584992.398.5198513170089475670.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the x86/tdx branch of tip: Commit-ID: d623704bb23901a25bf6d6a40aa16b43a17622eb Gitweb: https://git.kernel.org/tip/d623704bb23901a25bf6d6a40aa16b43a= 17622eb Author: Kai Huang AuthorDate: Fri, 08 Dec 2023 09:07:22 -08:00 Committer: Dave Hansen CommitterDate: Fri, 08 Dec 2023 09:12:00 -08:00 x86/virt/tdx: Define TDX supported page sizes as macros TDX supports 4K, 2M and 1G page sizes. The corresponding values are defined by the TDX module spec and used as TDX module ABI. Currently, they are used in try_accept_one() when the TDX guest tries to accept a page. However currently try_accept_one() uses hard-coded magic values. Define TDX supported page sizes as macros and get rid of the hard-coded values in try_accept_one(). TDX host support will need to use them too. Signed-off-by: Kai Huang Signed-off-by: Dave Hansen Reviewed-by: Kirill A. Shutemov Reviewed-by: Dave Hansen Reviewed-by: David Hildenbrand Link: https://lore.kernel.org/all/20231208170740.53979-2-dave.hansen%40inte= l.com --- arch/x86/coco/tdx/tdx-shared.c | 6 +++--- arch/x86/include/asm/shared/tdx.h | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/x86/coco/tdx/tdx-shared.c b/arch/x86/coco/tdx/tdx-shared.c index 78e4132..1655aa5 100644 --- a/arch/x86/coco/tdx/tdx-shared.c +++ b/arch/x86/coco/tdx/tdx-shared.c @@ -22,13 +22,13 @@ static unsigned long try_accept_one(phys_addr_t start, = unsigned long len, */ switch (pg_level) { case PG_LEVEL_4K: - page_size =3D 0; + page_size =3D TDX_PS_4K; break; case PG_LEVEL_2M: - page_size =3D 1; + page_size =3D TDX_PS_2M; break; case PG_LEVEL_1G: - page_size =3D 2; + page_size =3D TDX_PS_1G; break; default: return 0; diff --git a/arch/x86/include/asm/shared/tdx.h b/arch/x86/include/asm/share= d/tdx.h index ccce7eb..a403614 100644 --- a/arch/x86/include/asm/shared/tdx.h +++ b/arch/x86/include/asm/shared/tdx.h @@ -55,6 +55,11 @@ (TDX_RDX | TDX_RBX | TDX_RSI | TDX_RDI | TDX_R8 | TDX_R9 | \ TDX_R10 | TDX_R11 | TDX_R12 | TDX_R13 | TDX_R14 | TDX_R15) =20 +/* TDX supported page sizes from the TDX module ABI. */ +#define TDX_PS_4K 0 +#define TDX_PS_2M 1 +#define TDX_PS_1G 2 + #ifndef __ASSEMBLY__ =20 #include