From nobody Fri Oct 2 05:28:57 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010048.outbound.protection.outlook.com [52.101.61.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8E2D453A50; Tue, 4 Aug 2026 23:56:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887806; cv=fail; b=mfjYO2kakiJT4qbeURvAvhF4IUYLeXA5RVOq2t52/Eh7nckpxRJ/nIBDnKW09NqPxV5qHFudNzHKho7Zo3ghPXaIjAzcgBAD8wn5Q1rJyThOb2CwIiElK0B28jO+8zPMr5o2ruo8vKPPrmtMZiKj02EBm6GQrtQDFKNks7Zq60k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887806; c=relaxed/simple; bh=A5RCLZfrXGW3M42kVjxbgfzvQqXToOkmcOv9VKC/74g=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hGNeRqN0+dJrm9siX862LU1MRIZwRLK1u2BRKb6mD1RxSn/i3DITpXALZY92GrsNyZSWj7RlbKkSFQLOG505QgDGnBzFMyRATNMESmLxVPQohfe2TieWnKs6Tc5adnFOvRKMd7DshM7nvFmZABveFeYuytK5RN7vYBkY0IQtS70= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=HMC2YIno; arc=fail smtp.client-ip=52.101.61.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="HMC2YIno" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wmfx+IZt7VGhcj1qXAb4Ef6+6ohSvAJMnHz3WpLizFQ9K4x+6jKssNy68ZRBkxKBiZmv0fN2J0Ea5V69VN5w+KVsLmKVSt5DojdHVMHyfXo6gk/UUY0Ja9DtCRlttZMxuPmSE4scNFrG5VBzo4QtsMlGWLgA3K7f0Bo+eOVhWg1RVgWKCCKMiG+21E7VkGmaXCK4QOk0Om1mGlr/zBgEuw5OAjJ+AO3zT3wFytV43EkJv09n3s9TX6FpFYQ0hi1F/FXIDFmr4rUOt2cFmOMo5ZBvXPjTNOADLueEXyDBxCDSG5DW43lQnlCcEXtgVDd9ZV5mY9OdQKhPQpU6ejE1uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3usWa9zQ085RG8edttr2oNUJq1JJZlRDZ7ZIKIcgpLE=; b=w61wGBPW9v4NOJznXg/audcFeINfGbYbfqdlnepp+sAojZRm7HEcV3RMCxT8pRCBjWkwRyD7DV+u4H7uQjDgUPMzlB0Xy+87mgp0a+L9m71mTi9IPoOB574qiY+bMwmkFKPsa5tqgRzk00uaUckzOxnUiUc+mOMLXLvfOF1w2mS8hqYGO4V3XKSIOHYWeyD++fjBJubyeq6Bp1qgNGEyynJzSwz+Vo3TUQMCq9S2OMRDxVsvLJE/bqT3wO64vs7y7FiRZwnNY0nVN5esOyOAhQwNaLt2XGXG/Lll0bRkfb3lJQqhLOBbi6MCwmBUODUZoDhPzobEp0VU/RameFuIig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3usWa9zQ085RG8edttr2oNUJq1JJZlRDZ7ZIKIcgpLE=; b=HMC2YInoXWTNaLVne4vKZMF/2i4hpVPhvMxYCCWBC9D7rT2stXnQKhC7Q0vdR/xJfuYM2iUI/9tFCRgbEJar57HZhK52AIH/3SmnICNd+4eqHixX+N0vNj6cWKSHNjU2IQ2Sz9TyGbrNYNZQ1az1r1XQ2EwmmBWA6sNvp60YdTo= Received: from BL1P222CA0017.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::22) by CH2PR12MB4118.namprd12.prod.outlook.com (2603:10b6:610:a4::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.18; Tue, 4 Aug 2026 23:56:39 +0000 Received: from BL6PEPF00020E65.namprd04.prod.outlook.com (2603:10b6:208:2c7:cafe::39) by BL1P222CA0017.outlook.office365.com (2603:10b6:208:2c7::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.270.18 via Frontend Transport; Tue, 4 Aug 2026 23:56:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E65.mail.protection.outlook.com (10.167.249.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:56:38 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:56:37 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips , Subject: [PATCH v4 01/10] x86/bugs: Only log missing retpoline when it's actually the missing mitigation Date: Tue, 4 Aug 2026 18:56:02 -0500 Message-ID: <20260804235611.4053375-2-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E65:EE_|CH2PR12MB4118:EE_ X-MS-Office365-Filtering-Correlation-Id: c2c09c6c-7c47-4ccd-5198-08def284064b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|23010399003|82310400026|1800799024|6133799003|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: BU8l6iNaW9tr2eIJ7YmrnC4Gs7BfOhWvDBsTApl4L4296bbm7Cv14BpWEuKlJ+EMn0/MC7QQFgyn+epBFD+d7NlurCkq2ciLVr8cgNlJzGWjjgX4gDkpBBeoWdVQ7TaliUMjvftsGlpzlMiFcngFq0OXqLx/8fXfET0j5+ST/verP9OekEz5Mbdx4m1PLd7SbPSfhvtSIsT1xe1v/NuT1BT3jNVTGgiUgdfq4GWKF9fZCLr4Sqy2svSTsO5n3yAwYVcf9n2eQ/Zp149Q6I9NMEJp/NitsE5BU9FJmjzR28VPdY8LpYaiRy3DL5FbwvWGLNPGogFYd9guqB5tjfRj7XRrROqrmoK5vrdX6q2UdiPEOEf3SweyZISwSfHkfV41MZ0jlgVf2sKCZALmfe8iE8kccZ2Woy6qzMn0Vmr71Qd7Ryx10XNrgmFQhu/aYJbjCKzQz05vMM/JEsBWVvpt4T4f2wF4gzWj2W4rDwAy7hhAZo2ANzBkCUOdFqTkIBVzqPNT2aw2T3q716YEza0X9D2KbnUSmN0W1T+IFRnazc2OQldFEe6S7tBamp3Psn+08lZRBlPK7Ta3XDEA3McM8yBprtFEgiZ0uGB8JNVD9Cjt6OjIu+h1QXSALMDGg1gCY+bkO1YIkMmRrXaR+FQPbXv3HFvKbWZN3uAnxwKEjICKAXYqkzNiSfVBz2d3u7n+VPgypGyOubh4eNoWq5TG0A== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(23010399003)(82310400026)(1800799024)(6133799003)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LYL4l2i7g9WTb0lzA3X4bKc/YH9iruqX6FBJG/D039g8iwfBJlesUWbKjRwk+fIqML6VpbpQdi6jqsQCWQCXj+bj4ALgzVRD1WOBlf264bvNa+FIoeQ5MPWvM2RPl10mi1B6YF5uTdyynQDaMql3fej6RD6elUArU/npQchSt5LvIOI7D2ERmQygiV+g1fw13xWB3+D+wEjQZ6AJJV/FddW8WB9v49u1/72uSx616FY0DZvuJjZtQgwsl0VDe6m8sZ7DO/edkQz5XMx/saRmLJjEU2hlbfdBqCRCrx9+UUCyvhziRsLfq2HyEHLuk2Z6g0FXTYGmHKCKmoDmjOFOt47dbEXEonlXND0YYfeBp2MJ97oqmDD/21F7fURZHooZPRZcwZlijT6spNkQv4TakdxxBTPNL4+soo5VlMpYm+t9RIvEZPcsapNgilFspe8R X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:56:38.7958 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2c09c6c-7c47-4ccd-5198-08def284064b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E65.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4118 Content-Type: text/plain; charset="utf-8" spectre_v2_select_retpoline() unconditionally emits a pr_err when the kernel lacks retpoline support before returning SPECTRE_V2_NONE to its callers. A caller may then select an alternative mitigation, making the "no mitigation available!" message alarming and misleading to administrators on a system that is actually mitigated. Drop the pr_err from the helper and emit it once from spectre_v2_update_mitigation(). Guard it on !IS_ENABLED(CONFIG_MITIGATION_RETPOLINE) so it only fires when retpoline truly cannot be built in, and restrict it to the cases where retpoline was the implied choice: SPECTRE_V2_CMD_FORCE, or SPECTRE_V2_CMD_AUTO when should_mitigate_vuln(X86_BUG_SPECTRE_V2) indicates we actually intended to mitigate. This avoids the spurious error on a CONFIG_MITIGATION_RETPOLINE=3Dn kernel where a caller of spectre_v2_select_retpoline() selects an alternative mitigation, leaving the system protected while the old message claimed otherwise. Cc: stable@kernel.org Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/kernel/cpu/bugs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index ddf0db5326fa..b345f64f4258 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1956,10 +1956,8 @@ early_param("spectre_v2", spectre_v2_parse_cmdline); =20 static enum spectre_v2_mitigation __init spectre_v2_select_retpoline(void) { - if (!IS_ENABLED(CONFIG_MITIGATION_RETPOLINE)) { - pr_err("Kernel not compiled with retpoline; no mitigation available!"); + if (!IS_ENABLED(CONFIG_MITIGATION_RETPOLINE)) return SPECTRE_V2_NONE; - } =20 return SPECTRE_V2_RETPOLINE; } @@ -2247,6 +2245,13 @@ static void __init spectre_v2_update_mitigation(void) } } =20 + if (!IS_ENABLED(CONFIG_MITIGATION_RETPOLINE) && + spectre_v2_enabled =3D=3D SPECTRE_V2_NONE && + (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_FORCE || + (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_AUTO && + should_mitigate_vuln(X86_BUG_SPECTRE_V2)))) + pr_err("Kernel not compiled with retpoline; no mitigation available!"); + if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2)) pr_info("%s\n", spectre_v2_strings[spectre_v2_enabled]); } --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010017.outbound.protection.outlook.com [40.93.198.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8679F456DE3; Tue, 4 Aug 2026 23:57:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887822; cv=fail; b=BNTTgnG2NsjGKoclf0fw9zBRHrNU3wFUDivhyiHaGPGfc74imLdJaOBBn5PBxxzUaISvLXdI6NRjrEwntLDH17ve3FQEh5w0F2xPUv0jBS5HpfuY3SgTTt6ocA0T33KiU870/yLK2FunJcb9IIABECABVo2PjWnojE+re/Ovzs8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887822; c=relaxed/simple; bh=p3tBq/rEX6/LaBei5RzQNN/cymPHYOB3s6exCj4/dRA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EB5NIn+gmYaWRPirpgtimn5gRlSHBu548UbE+lCIG24DMD6+Y6bWDHc0LGCc7oGBs4n5Ob3hhEZOMN4q3YIpp1h2mhmQchP0ES+RDUFCB+VQ1neuNJ1+fap7eTCk4uCS41swnK2sCR9/qIiYrK8WWdjMuw7GsPYgDhiJLvH242E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=WQnFV07r; arc=fail smtp.client-ip=40.93.198.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="WQnFV07r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uHy3h9UeqlUdtlD289NsIHOSfyasfQq205tI13qsMcm6kjynGWfgEKijJvd+pXuakNk9tiBPE/Y1bj7vr4sbcBGOq/kXLr+1a8eR6OZUMeNios16xcUbXoRcVAZclkr1pLVz559pAV8cXbZCxCv4Lu/mbIwL7nsZpUCdrI5XFWq38xQTLR81KIAvOXlRa5tDcA89a9cLSBgQmLH7NTdc1oCIoVGWegnbxmr+Zdxd+o7FxMvcJqrC4ZjtQhk5FsJ2LlBQH4Cap2qDt+H0jvkZ93L2WMG8x+SVbZsUHvIHNnCJjf0vvAVOBNcuH+XQNfire4Nyjdr0QUk7cyog2Dnvpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OSoWikgNAFv2gM1dsj6n/flTgM62hGufwugZZy+EGIc=; b=rHum24FGvTZ8+zDUcPuhoPW7FVGK8DdhA2H3+fMNL6oFVGTj91NJJEhHNzpDcZVYQvPyXrabfI5KO5MDLPFSAFicKTaIR5FtuNtdn8Wuw65e2YtKRCjzR+TbSqfD9osihlTxhnyiJeWoo48SkG7YbM4O0Qz3qFfj1i8PKIvGAbokV0eXlM9ipwp16brfjh2gAmlG5A9tQBtoBbyzrhj83JvZAvJMBzPdS2U2hUeS5m4PxVdRSYaj4J9oe+N8pdZU09b68XL0Fea10nfNYKHdQ01LhOaXw/dudv04BgoK+Kp3HlGP82Z0GolzocIlEAhDCVAXv0ES/5uVaVvsdRhI+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OSoWikgNAFv2gM1dsj6n/flTgM62hGufwugZZy+EGIc=; b=WQnFV07rvcmqJuw9ltKTW/JMll/XQDQqBECZaJzUzTT3FkCOR1Qrp2rYg9MT7OU7WgA0Rcm00PTJ7ukJQxjUH7Zjw516ueXD/4wdqTQh2qv8K874mMZZzUCZjlybX2GswZEdEbn/Jew4uhlDehnhqXiqNgUceNhankYl+g1e0X4= Received: from BL1PR13CA0418.namprd13.prod.outlook.com (2603:10b6:208:2c2::33) by PH7PR12MB8056.namprd12.prod.outlook.com (2603:10b6:510:269::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Tue, 4 Aug 2026 23:56:55 +0000 Received: from BL6PEPF00020E66.namprd04.prod.outlook.com (2603:10b6:208:2c2:cafe::af) by BL1PR13CA0418.outlook.office365.com (2603:10b6:208:2c2::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.13 via Frontend Transport; Tue, 4 Aug 2026 23:56:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:56:55 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:56:54 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips , , kernel test robot Subject: [PATCH v4 02/10] cpu/bugs: Allow forcing Automatic IBRS with SNP active using spectre_v2=eibrs Date: Tue, 4 Aug 2026 18:56:03 -0500 Message-ID: <20260804235611.4053375-3-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|PH7PR12MB8056:EE_ X-MS-Office365-Filtering-Correlation-Id: 02f879fd-25f4-40b2-e5d8-08def2841007 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|23010399003|7416014|376014|18002099003|11063799006|56012099006|22082099003|6133799003|10067099003; X-Microsoft-Antispam-Message-Info: Sj1ilI2rbR+61ndeuQ7WjbaBWuxmK7kL+DDPfj8eoHSMHUO1LfFnvwNlboFHM8Ur3nLjY/QzZ/tRK/kUjB0OaldQ0a2+piAen5wJdpbuVshAlo1+ykrwKlv/GjzoydZvwBc1R7c/7Dw4EWdSV5pWU5x9x49vKCKs2FawEH/tEM2qifXA1auY1aF1VThjeiaI1akF8ofRFoWMYUO+0jlJkt3pru4CWqnFZG/6X3w+cFs0n+VsrpuR0ltslyez1ADrNP8ufKF+pRzyj71X0QfrkUWvEpm/qLwDqMNdHVP5UDTWlclCSPtAWLiwWLGdnAL6Na73t8YJ2im5YQG1Lzzng5XIslHf+OyfrM4NHX2chqf/M431jsDikHq6oB4FVLVMBP+EQBYqLrDEU7SolWqWPt3uw/YR0yw+4QfC/cgv9XZFQvbBgod6sSWZc5aMBFVGqSVDtp5vkP8dKBA1ObIIV6sr2Uf0CzeQOsX2LnAJ2KTRloF10+R00hn3Mcg0WtwYsh8AowPiIPIZTKzV1D3Al1rtBzCcd37Qd3BHvNLJaRUrMCSCXLcGIQkK3bFF0xCFCgouVg0UpqzPdgD3ns7G+Ep5C8RlxL/U8Dq6bfRB5WdHJuPlybFGMFiZR/nkbLRL4jgPc4r1iKk04aDfij408n1SYZeHu1OA1vKREJJCnwFk/lasX/2kNpCPHwVlhJDSQsH2Yv+tB2pawP0tjpwY7A== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(23010399003)(7416014)(376014)(18002099003)(11063799006)(56012099006)(22082099003)(6133799003)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: r2FF7eUT7ZHYJ3ZoHPiTZtmYghjFJecZKv94Jo17sEvR9cBvu5yIDAn6biTsXGA0ssLyZDk+J7yee7yg4Pt9EaRjdkepRNa90bNoKNwfY6OgF4e0PDsgor26yYpRTQ55fS9/SIlPxQ33oRcZIa541lAyR2SokNWhqDd1el0EutfZqMpIztoP6BVRPC26girYRJJtryk9d9Gw0E4BP2QCTqCTL071TalTJ3AZPydyI/8GwHFEkOO6ziuenRQFVXQHApcdBPnh8xJ18OxrEMlMwUzwzjiJRYuSwdu9mvL/PDPpMpRNmbav0uvlQ8UCF9UGbm9eUt9VPHlLxqatS4OPOsN1oeWc9Jqslxp2Iv5xfSVLS9kFaj9HoQ2LSUOQirUeiZe5I1Y4dNxZWENpDkpr0X8IaHcwH0COo/mh5mvc7OscYYF5E0XRNRNZEK8MKAAl X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:56:55.1314 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 02f879fd-25f4-40b2-e5d8-08def2841007 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8056 Content-Type: text/plain; charset="utf-8" spectre_v2=3Deibrs currently enables retpolines when SNP is enabled, instead of AutoIBRS (EIBRS) because the commit that disabled AutoIBRS if SNP is enabled stopped short of enabling X86_FEATURE_IBRS_ENHANCED. Change the logic to enable X86_FEATURE_IBRS_ENHANCED, and move the decision to switch to retpolines in the default/"auto" case in spectre_v2_select_mitigation(). This allows the existing spectre_v2=3Deibrs logic to work as intended. Also emit a performance loss warning for using AutoIBRS with SNP enabled. AutoIBRS is activated for all three eIBRS modes via spectre_v2_in_eibrs_mode(), so use that helper to cover spectre_v2=3Deibrs, spectre_v2=3Deibrs,lfence, and spectre_v2=3Deibrs,retpoline uniformly. Word the warning in terms of the eIBRS mitigation enabling AutoIBRS, rather than naming AutoIBRS as the selected mitigation, so it reads correctly for the ,lfence and ,retpoline variants where another component is also active. Fixes: acaa4b5c4c85 ("x86/speculation: Do not enable Automatic IBRS if SEV-= SNP is enabled") Reported-by: Tom Lendacky Cc: Borislav Petkov (AMD) Cc: Pawan Gupta Cc: Dave Hansen Cc: Sean Christopherson Cc: stable@kernel.org Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202603121136.bc8zNsHS-lkp@int= el.com/ Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/kernel/cpu/bugs.c | 12 +++++++++++- arch/x86/kernel/cpu/common.c | 6 +----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index b345f64f4258..a813a98ac5bd 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1672,6 +1672,7 @@ static inline bool retpoline_seq_enabled(void) { retu= rn false; } #define SPECTRE_V2_LFENCE_MSG "WARNING: LFENCE mitigation is not recommend= ed for this CPU, data leaks possible!\n" #define SPECTRE_V2_EIBRS_EBPF_MSG "WARNING: Unprivileged eBPF is enabled w= ith eIBRS on, data leaks possible via Spectre v2 BHB attacks!\n" #define SPECTRE_V2_EIBRS_LFENCE_EBPF_SMT_MSG "WARNING: Unprivileged eBPF i= s enabled with eIBRS+LFENCE mitigation and SMT, data leaks possible via Spe= ctre v2 BHB attacks!\n" +#define SPECTRE_V2_EIBRS_SNP_PERF_MSG "WARNING: eIBRS mitigation enables A= utoIBRS on SEV-SNP enabled CPU, this may cause performance loss\n" #define SPECTRE_V2_IBRS_PERF_MSG "WARNING: IBRS mitigation selected on Enh= anced IBRS CPU, this may cause unnecessary performance loss\n" =20 #ifdef CONFIG_BPF_SYSCALL @@ -2192,7 +2193,12 @@ static void __init spectre_v2_select_mitigation(void) break; fallthrough; case SPECTRE_V2_CMD_FORCE: - if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) { + /* + * Don't use AutoIBRS when SNP is enabled because it degrades + * host userspace indirect branch performance. + */ + if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED) && + !boot_cpu_has(X86_FEATURE_SEV_SNP)) { spectre_v2_enabled =3D SPECTRE_V2_EIBRS; break; } @@ -2291,6 +2297,10 @@ static void __init spectre_v2_apply_mitigation(void) } } =20 + if (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && + boot_cpu_has(X86_FEATURE_SEV_SNP)) + pr_warn(SPECTRE_V2_EIBRS_SNP_PERF_MSG); + switch (spectre_v2_enabled) { case SPECTRE_V2_NONE: return; diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index fa429f04f003..8387d3a49c43 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -1496,13 +1496,9 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x= 86 *c) /* * AMD's AutoIBRS is equivalent to Intel's eIBRS - use the Intel feature * flag and protect from vendor-specific bugs via the whitelist. - * - * Don't use AutoIBRS when SNP is enabled because it degrades host - * userspace indirect branch performance. */ if ((x86_arch_cap_msr & ARCH_CAP_IBRS_ALL) || - (cpu_has(c, X86_FEATURE_AUTOIBRS) && - !cpu_feature_enabled(X86_FEATURE_SEV_SNP))) { + cpu_has(c, X86_FEATURE_AUTOIBRS)) { setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED); if (!cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) && !(x86_arch_cap_msr & ARCH_CAP_PBRSB_NO)) --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012052.outbound.protection.outlook.com [52.101.48.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 468A845041E; Tue, 4 Aug 2026 23:57:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887833; cv=fail; b=SKO02DEtCEWkjAL6QG1+Yw1oOuhyMq5N8SYuLSU445AQ9el932PsQn1TK6gVVD9aKUWWi690s+SktZFW5FWcUT6Kt/PitGKsB3t3OzgQ1f/FM9WCWPSW6/5I1SoJ+8BmQd6MZwiPN8CdFWbo01CspeVU/ttepGNoC4U4CFMTaNk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887833; c=relaxed/simple; bh=/8iN0dLNJB7B/w+c8fG69zzj17gK4F5thO/PJvNkufk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PzTKwytL2wvuyHaMCk4yF+QDIMvU/VlkMv6M4pPaHWL0QLKp0VdEB2jNapMDsUl9Arpz89WUz1u9noVINPSq3M3TtXM3meyYunML9a35HglKFCEw8BJI4s/DGMDlt6n0sDa7zxSbJ3TXrhGrmiJtjf483Z0m3nIYY2kpAVkE9UI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=BuhDbx92; arc=fail smtp.client-ip=52.101.48.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="BuhDbx92" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VEbpPh+oLzJBNvfztUsBbMu9F/jCOAkDF/s42ShFuTRp41s8JpZ6bdemONtBmcKg9EyvOG/JNeTewHJXh7/aA4vqQNxDHswsp8RnYESKgjNDL0VYpOtz8Foyt6W+JMgiO/EiOTQmZQDpgiyk+aBDtw/rU+r2/+ZzHv7BHK1U8Mmw3CzsnMDJExomTeUZ7CSMjiRtl6Rf1s9qjKs8KwuNVPSrpk9Ph+hyXQ3RBWM2glSuR7HT2POwiCNpcGXPYezsxGtEVS+jfd/U5f8odNhNN0cCKH/8LO9KdYAdnMEs8Z4aRndRgm9ZZWb0Iufavmqhy+RDovOH2s7a06WN4gjQkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7V5fvAywgkHl+XvZQLyCv4+sFuU7e7OEOgDaSYD2JW8=; b=p8kBV4DylLF5nXf+EgW3iI8vIF1qtS3fHJLXrlga+cTiVRYM1zejOzWe/H6JDdgR7tpkffVGWl5GuDolXraxpHKKgl+8oSvAA3GvR4z+ZTA4XPf22LA0Y5iYsG25Mgp0PsJ5kxVt5WgOLg0JEPcpegVTkQY7CnqakmTx+LYTGiM66QC3WiJ0fTaolu1DTwnk5uKEl9TZ0FlnHHB2Zj6A/JkMUmXMRr8ho5RruDcHXENcD3JKvfxDcFYP0/snjwXy0mN9BUhYogL+0jr69wOF+o49yPguprElr4xiNi2GpidIihldszHIlV/+gykH/b3dSQ+LkCxFFo6+InVXPF7ocw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7V5fvAywgkHl+XvZQLyCv4+sFuU7e7OEOgDaSYD2JW8=; b=BuhDbx92mR/SjTS1TZS9KfAafjjsrTAH6LfFRCYwu244bH6d2EiptatGVHzMTh8aOgSAEWepmc0UPKwA/iq5HKELzzYYSKAw0TjisdYv1YH+AuNaKVUysQP6t0m8yAr0uADO7T1srZ2wzCkvvuNBn6omYZpFs5RGJEazaHhs7vs= Received: from BL1PR13CA0228.namprd13.prod.outlook.com (2603:10b6:208:2bf::23) by DS7PR12MB8420.namprd12.prod.outlook.com (2603:10b6:8:e9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.18; Tue, 4 Aug 2026 23:57:07 +0000 Received: from BL6PEPF00020E62.namprd04.prod.outlook.com (2603:10b6:208:2bf:cafe::92) by BL1PR13CA0228.outlook.office365.com (2603:10b6:208:2bf::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.16 via Frontend Transport; Tue, 4 Aug 2026 23:57:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:57:06 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:57:05 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips , Subject: [PATCH v4 03/10] cpu/bugs: Fall back to AutoIBRS when retpoline unavailable on SNP CPUs Date: Tue, 4 Aug 2026 18:56:04 -0500 Message-ID: <20260804235611.4053375-4-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E62:EE_|DS7PR12MB8420:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c2eb501-88ee-4501-f1cd-08def2841714 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|36860700016|82310400026|1800799024|10067099003|5023799004|56012099006|22082099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: 3vCJ2uqg56Qp8Ory6aijlBc6zRsPT12OV8hdxybKM7H1ieQ/QJcPmzpbU0/Q0ujdB+zjlVIqWhudDN2vECLpi7dJKEfeS3qN1WEbljsox4zItgIDGXCdwDmGHfHpdzVBQ2atkvkN10dAfQFloP0AOsE3FSXQmZmwya1QgBRnGcArKG0f8AV1o7D9Adu49Fidnie32yo4xP5nrv+FmWVqSAHN4YVk8hXMg0lqsrHuTv4f/QQcVG9v8AWzAi0Ljwo+lsAFT7c68V7DH8YeY3/PGDuvlvtatV7cQtSUdtpvCmE6dlq5RjAogHtfgp0uUwdM71VY04ricgYsSsGRNnQy7V1MnooabeK8DObtEf65xsmT4FOlwEseT1V6FrCNcBq2H31VIKp3gwlUSB1fAjk1Ie9b5e/lmn0rvq+GHWevawVx3olphczLkfNUZR97M0OFS/ojrVaiuuCd606K7lFywSP7hnMvhjo/DO9YdTRLSzftdf7F1epr/Trwe0XzOauJCtL8Q/1WSptjNiVjW3L87dFMZmYnUJudWWN7rWK1gEOpAXEyTOVMKkRERXu4krYKq42mFSft8UTYAtexg1wLftppdm0ZQFJUwaP0XeP+neLyYvIGLRIID/CNaGwvWmeBJrxno3pX6idh5Th1/LiJ5cIakg4/VulNmCsCQUFhVmeRZqrZflrVmeeqRwqMYzDSlKYQ94YUw6nIAuOdK80AyQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(36860700016)(82310400026)(1800799024)(10067099003)(5023799004)(56012099006)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cRg0fu1J+RDGqFK6RENAhdtuCbUuacMlP9Ye4Mn8sv6WXmEWv8VYxOVDxYgLTgt2hMgERkFwdi1DIOu9HKZBUEIvhqpy7wW2PcmVFTxLfdoPvRzZ+m2tZ4BBrYZINIGAmTNFfBdJ+s9ZKsCTxj8x6a+aSxgQG7INecSb97Kac2SxkvsUwrUJvOq01YezhYYXR56Frbt/JD6iXMwsK1Tv83K4CZwWULFJbT5eXIiPvAl/qZgD3Au4aOgZMn4sE1GyuXH+kDvyez6FdI0wOhW+LgU3eXfOIBNU4bAnJtqPplj1sH1UPuhdlEBO6Weumn32UTvNG1DLyMdAL7v2t/mmoD6ctW/6tXWrX9rpjf3qrmol14n6Pa2zQPwgH7wNx1V7AdPT0qMT16LJpIpWveAj5Bmacyvnl9UT700JITXbOztqfKt1P8d5sldRsVRTDtXq X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:57:06.9710 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3c2eb501-88ee-4501-f1cd-08def2841714 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E62.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8420 Content-Type: text/plain; charset="utf-8" When the kernel is compiled without CONFIG_MITIGATION_RETPOLINE, spectre_v2_select_retpoline() returns SPECTRE_V2_NONE, leaving SNP hosts with AutoIBRS completely unmitigated against Spectre v2 in the default/auto case. Since SNP CPUs have AutoIBRS available, fall back to SPECTRE_V2_EIBRS rather than leaving the system unmitigated. The preceding commit already enables AutoIBRS (and sets X86_FEATURE_IBRS_ENHANCED) on SNP parts, so no additional feature-bit fixup is needed here; only the mitigation selection changes when retpoline is unavailable. Fixes: acaa4b5c4c85 ("x86/speculation: Do not enable Automatic IBRS if SEV-= SNP is enabled") Cc: stable@kernel.org Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/kernel/cpu/bugs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index a813a98ac5bd..6a036b509f0b 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2204,6 +2204,15 @@ static void __init spectre_v2_select_mitigation(void) } =20 spectre_v2_enabled =3D spectre_v2_select_retpoline(); + /* + * If retpoline is unavailable (e.g. built without + * CONFIG_MITIGATION_RETPOLINE), fall back to eIBRS on + * AutoIBRS-capable parts rather than leaving SNP hosts + * unmitigated. + */ + if (spectre_v2_enabled =3D=3D SPECTRE_V2_NONE && + boot_cpu_has(X86_FEATURE_AUTOIBRS)) + spectre_v2_enabled =3D SPECTRE_V2_EIBRS; break; =20 case SPECTRE_V2_CMD_RETPOLINE_LFENCE: --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013041.outbound.protection.outlook.com [40.93.196.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1968456DE3; Tue, 4 Aug 2026 23:57:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887843; cv=fail; b=eyYfnjs82CxzHNHwYUFtN33m2e5r4JqF2BRLmuCusUT348g3CkLOnSNrMqCcfBzXqw/dTvLGKYIR4XUM/0uvIDm1Eqeao7z7aW1vafR63KjFis9eIjr1Ahy2vgj6wEVxPiBfeVTGKe5moKDeUfGFZGGKpINwVQdkb6sgCfYz5u8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887843; c=relaxed/simple; bh=7Ngs3HL4caSnu12Iv75zKOrQk2GiIb46B33TBHslhPM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F5Ja/EOxSA/7wDEOpBLVyeNt1GEN73uP9UTjWAuUEJ1kcAP8l3wqcv52Cte+fFsxSYnAKJVvZTBJLNJBpPgGJUyraWfg2TjuAL35gu9Q3kVtkpqd+b5VTvFpdJf+NVHJyh/Pu0eiLOaCHOi25yuCdNBPNH9HnTTDVP3FpsPbino= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=jyrQCSs0; arc=fail smtp.client-ip=40.93.196.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="jyrQCSs0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Kr2wn2uIaKmx4mWpr7jC6+KtHbBWI+QGmD9jdbVpDBVRWDYWAtTGv+L0DmfL0LHXSBHIilnqi43vAM/soNGazBLfk78bSlZMlFzuKERoL5C573yRdUpQjZK2sSZKobF+QqrcWJswszQcfvIxjyKqRvU48PLFy2BTUqBCfYk3eU0qlUlAHKzAXIbQ6P1OOfECT0UmgWskzqOBJbKdZdhHxZhmdvzaQVrcI0bQ1p30Z9JRXabUeH/qwAIAdrnlUmIL1hg6eR/Hbux8QYQf06BwyoclJns360eCnMX1kpLWBVO8Jok3GyF42kFeW0U6MrgJuZj217QobQhpi0faXqojzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uyNLICISlrIAc58RX6mVG0RctrL+QA6sCIN49Ijn4Xg=; b=PO3Bl7uvnoYn+3WfuFO+nQPjyvLgZjzxMtcM5EJYuDi8/+rY7Hrp9cBT1pWdqMCJTa4GbTR/gTRPIwjmWdZQVJ3dTeQDtmkiXQcML53yE5baKUxqZysNpedNgM3kqSClStXpciRpXk/Lb7PRZj2AFSdbdW9Tc8zB1s2Xj0jmsVgQX5LPpbAOD6fKZ11kcmruX/gfPnlXZisiIhiKLlmczXMNBQ2NrfXO0bOqykMudVb0FlhETZ5t3kQtWyAOaUc4hK/mP3QzoZ3ElKQ13Atj0FwKTtxvH+sNR7WWvEabtHGILp0heBmU91TOD7J3CLSBxnr7nR3JNKE9Sl7P2P3GYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uyNLICISlrIAc58RX6mVG0RctrL+QA6sCIN49Ijn4Xg=; b=jyrQCSs0HZshtqPu2aiTAHPAC1Q3qO1DvvMwqoDlb0sChmxb+RImLu6UI04FyaWHJa3bbXJXQksB4aNpk/RAdH3FQ/Ld+rOa9tPLJxpzT2ydEGqN6xSgdHBpat8zHxusoKLSKYxwzybxWbc23NcWmOU3Gw6UOmXP7/qjm4eJPCE= Received: from MN0PR04CA0017.namprd04.prod.outlook.com (2603:10b6:208:52d::10) by LV8PR12MB9716.namprd12.prod.outlook.com (2603:10b6:408:2a1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.15; Tue, 4 Aug 2026 23:57:18 +0000 Received: from BL6PEPF00020E61.namprd04.prod.outlook.com (2603:10b6:208:52d:cafe::1d) by MN0PR04CA0017.outlook.office365.com (2603:10b6:208:52d::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.16 via Frontend Transport; Tue, 4 Aug 2026 23:57:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E61.mail.protection.outlook.com (10.167.249.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:57:18 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:57:17 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips , Subject: [PATCH v4 04/10] cpu/bugs: Allow spectre_v2=ibrs on x86 vendors other than Intel Date: Tue, 4 Aug 2026 18:56:05 -0500 Message-ID: <20260804235611.4053375-5-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E61:EE_|LV8PR12MB9716:EE_ X-MS-Office365-Filtering-Correlation-Id: 936dfc12-4319-4fbd-0826-08def2841ddb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700016|23010399003|22082099003|18002099003|11063799006|5023799004|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: MOwcnXMhPzQypbZjkfxHEnho/1bieVOkkznQ8vrl7HyzMen7HY/DP4GkVdvV/H5/+B0cdBYwrRVOu07STCR3vzJaNVlwOLBRR4m8HuO9Z8tOt7sVKZarGVxDmNeuVof6rI+VQZH0cahM9c8PG7achWHONJ/9AfmddoubNMWYUwBaXh4AJAi0kfmVu6+k/kHlXIsLSf8Q4+S8wc9SLDRsnEmphbXNme7adbK32Jwh2qWKF9hcWP8MTLIGrTs1hHS0sjSuSQ8vPeYTcth/h0h1wSP/aoIJnjuZ7KYjogAafOSK9YnMhCP6gi2lbvfNOQNgWjuxfzjLF7+ZfUzmteKs7UKZMiH4tI5tNB3+kRW7nvgjJ9fELtoDNTzxAQR91V4XjeIaLpKvD9vNpX0LCHv+ly3ERAMK57hMtISjmpIrHtsJ+bTxc3BP27Zy6ilFJIwGdLswJ3G9AF2AL3VKKkmkmjCDgxZty6kyfe8mnJFFx60JihLDwNm7HrsT/zHX/1gzSz4HxhRDb0GvFhudCfj5D7n0Z9WDqSWD6S1eMMlRFMAVd4PpfPuuDmeX7I0QQtTSxLn6PNCa2ZzR/utQwGxGM4BnuRe/XeQhSEwl9wDvPfgv030AG6VuujPxEcLRR814C90jz8+NY3JzwQW5pHoco987QUGktjUQIPy+6gzhRUz9JJ+Nq7yNG1XqO8kU1Ewfd+Wv9d3eWzeCzjJHJRAZjg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700016)(23010399003)(22082099003)(18002099003)(11063799006)(5023799004)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: v8eOm+FX156dpZfuHtlBAy7r2K5SwebnRjPl/Gu1w/z1qGXxsnl49EgRZqXyot7ZCZl2YJYCj8W7MZX2beDhBZsLiCWIu07dXnrUiDBXrj4DUyIHz1a1DWYknpEB1Fjarlc8c+oJXLBJYe2YaEbET1iioQKyOA8oRfU3f2SzOsjnbiydlDHXr10ZhFTx3cxSuyg41a5tKDNVZaxKKYNWKgEN8BVQjQNvth1s4DoXkcilrUlt0WZ/aapBiPE81BUBhwu4UNd/c2R5EUpGbH/9R+2t3WKdy2yFInCdFqghgeyU7MftyRnnsa3uI0qN4bomxpCOR+Qw9e011GkUsfad04WdQW8LIv2rt1AVytkkG//qe+fPyVBO9PU4ptqjn5Gjrc656byvgStK3JlPmXAnA5NqGHi+yjx9hRIKJGALbIgPyG6EVm+w19sG8OLZtgTe X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:57:18.3252 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 936dfc12-4319-4fbd-0826-08def2841ddb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E61.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9716 Content-Type: text/plain; charset="utf-8" Prepare for legacy IBRS toggling on AMD, where the BTB Isolation SEV-SNP feature uses it to optimize the VM exit-to-re-entry path. There is no reason this wasn't allowed in the first place, hence the Fixes: and stable tags. Keep the IBRS-trumps-retbleed logic in retbleed_update_mitigation() Intel-only. Legacy SPEC_CTRL.IBRS does not mitigate AMD's Branch Type Confusion RETBleed variant (RET prediction uses the Return Address Predictor, not the indirect branch predictors IBRS restricts), so letting SPECTRE_V2_IBRS trump retbleed on AMD would silently drop the UNRET/IBPB mitigation that does cover it. On AMD the decoupling is total: retbleed mitigation selection never consults spectre_v2=3D, so spectre_v2=3Dibrs neither adds nor removes RETBleed coverage. A kernel built without MITIGATION_UNRET_ENTRY and MITIGATION_IBPB_ENTRY already reports RETBleed as "Vulnerable" via the retbleed sysfs node and boot log regardless of the spectre_v2=3D value, so there is no silent gap in the spectre_v2=3Dibrs path to warn about -- and a warning there would wrongly imply the Intel-style IBRS/RETBleed coupling exists on AMD. Also drop CPU_SUP_INTEL from CONFIG_MITIGATION_IBRS_ENTRY's depends line: the IBRS_ENTER/IBRS_EXIT macros are vendor-neutral, and the Intel-only restriction would silently redirect spectre_v2=3Dibrs to AUTO on AMD-only kernels. Explicitly set or clear EFER.AUTOIBRS to match the selected mitigation on AutoIBRS-capable CPUs: set it in eIBRS mode, and clear it in every other mode -- NONE, retpoline, LFENCE and the legacy IBRS path alike. head_64.S preserves incoming EFER bits, so a kexec from an eIBRS/AutoIBRS kernel carries EFER.AUTOIBRS into the new kernel; without an explicit clear the CPU stays in AutoIBRS mode while sysfs reports e.g. "Mitigation: IBRS" or a retpoline mode, diverging from the actual hardware state. On a normal cold boot the bit is already clear, so the msr_clear_bit() is a no-op there. Clearing on the boot CPU suffices for APs, since it precedes the init_real_mode() EFER snapshot used by the AP trampoline. Fixes: 7c693f54c873 ("x86/speculation: Add spectre_v2=3Dibrs option to supp= ort Kernel IBRS") Reported-by: Tom Lendacky Cc: Pawan Gupta Cc: Borislav Petkov (AMD) Cc: stable@kernel.org Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/Kconfig | 7 ++++--- arch/x86/kernel/cpu/bugs.c | 39 ++++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index e725b439d0a2..4bd91d41dbba 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2492,12 +2492,13 @@ config MITIGATION_IBPB_ENTRY =20 config MITIGATION_IBRS_ENTRY bool "Enable IBRS on kernel entry" - depends on CPU_SUP_INTEL && X86_64 + depends on X86_64 default y help Compile the kernel with support for the spectre_v2=3Dibrs mitigation. - This mitigates both spectre_v2 and retbleed at great cost to - performance. + This mitigates spectre_v2 at great cost to performance. On Intel, + it also mitigates retbleed. On AMD/Hygon, retbleed mitigation + requires MITIGATION_UNRET_ENTRY or MITIGATION_IBPB_ENTRY. =20 config MITIGATION_SRSO bool "Mitigate speculative RAS overflow on AMD" diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 6a036b509f0b..245de4ea8d60 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1305,7 +1305,14 @@ static void __init retbleed_update_mitigation(void) =20 /* * Let IBRS trump all on Intel without affecting the effects of the - * retbleed=3D cmdline option except for call depth based stuffing + * retbleed=3D cmdline option except for call depth based stuffing. + * + * On AMD/Hygon, legacy SPEC_CTRL.IBRS toggling does not mitigate the + * Branch Type Confusion RETBleed variant: RET prediction comes from + * the Return Address Predictor, not the restricted indirect branch + * predictors that IBRS controls. So keep this Intel-only and leave + * AMD's software return-thunk mitigation (UNRET/IBPB) in place even + * when spectre_v2=3Dibrs is selected. */ if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { switch (spectre_v2_enabled) { @@ -2164,11 +2171,6 @@ static void __init spectre_v2_select_mitigation(void) spectre_v2_cmd =3D SPECTRE_V2_CMD_AUTO; } =20 - if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_IBRS && boot_cpu_data.x86_vendor= !=3D X86_VENDOR_INTEL) { - pr_err("IBRS selected but not Intel CPU. Switching to AUTO select\n"); - spectre_v2_cmd =3D SPECTRE_V2_CMD_AUTO; - } - if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_IBRS && !boot_cpu_has(X86_FEATUR= E_IBRS)) { pr_err("IBRS selected but CPU doesn't have IBRS. Switching to AUTO selec= t\n"); spectre_v2_cmd =3D SPECTRE_V2_CMD_AUTO; @@ -2297,13 +2299,26 @@ static void __init spectre_v2_apply_mitigation(void) if (spectre_v2_enabled =3D=3D SPECTRE_V2_EIBRS && unprivileged_ebpf_enabl= ed()) pr_err(SPECTRE_V2_EIBRS_EBPF_MSG); =20 - if (spectre_v2_in_ibrs_mode(spectre_v2_enabled)) { - if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) { + /* + * head_64.S preserves EFER.AUTOIBRS across boot, so a kexec from a + * kernel that ran in AutoIBRS mode carries the bit into the new kernel. + * Explicitly set or clear it to match the selected mitigation, regardless + * of which mode is in effect. The boot CPU does this before + * init_real_mode() snapshots EFER for the AP trampoline, so APs inherit + * the correct value too. + */ + if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) { + if (spectre_v2_in_eibrs_mode(spectre_v2_enabled)) msr_set_bit(MSR_EFER, _EFER_AUTOIBRS); - } else { - x86_spec_ctrl_base |=3D SPEC_CTRL_IBRS; - update_spec_ctrl(x86_spec_ctrl_base); - } + else + msr_clear_bit(MSR_EFER, _EFER_AUTOIBRS); + } + + if (spectre_v2_in_ibrs_mode(spectre_v2_enabled) && + !(boot_cpu_has(X86_FEATURE_AUTOIBRS) && + spectre_v2_in_eibrs_mode(spectre_v2_enabled))) { + x86_spec_ctrl_base |=3D SPEC_CTRL_IBRS; + update_spec_ctrl(x86_spec_ctrl_base); } =20 if (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012019.outbound.protection.outlook.com [40.93.195.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDF224570D7; Tue, 4 Aug 2026 23:57:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887855; cv=fail; b=H4JKHudkmSSjQNVycY2D9IYVUCzudsGb9DNzg+igz1y7vzKlg+5WBcLrurUfPhXAmdI0+aY+Se8YWv1KI2zqfcoSZ/5Y10IrN92jc4XlPvU9ibL6UYuH4jHgEbSqcPeQec2wjot7cxwDD8WArdkurSavSbm79JyEuvb/UL9J+ig= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887855; c=relaxed/simple; bh=vcOHw70gqx1utuf+a7+PmYUbcvELyPEmzScXy7/i4VU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HFWIyQ0AUPNhHy6VtbUPon6drumaj9X9nt2VgwHu9UBvC5LUhUrccS0Tle1ZhogW7kLzoShVsMY5NtGqGVMacxNabYLSyfR3OQKqb8mns79cOIdBucvvWSs7axwvesvurd0zFoMHoGLRRMywBPebEEWW+SZx9o4cWgmwcTBVR8g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=cCFOnw4u; arc=fail smtp.client-ip=40.93.195.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="cCFOnw4u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B0Yx76byL6wpVZaF8iOoa/BKiB2seiYSpe1tlD4GALNBvqB6QiYjIP1GvAo7N46XSb5EfWKlbVKqfwqb+4DoW/N1SCzQe5WATZhmU5LZcS9PZ33VuOoddIGFe409VhTWMxUluFyhCN4qythIbc7olYmNYS/kbG/naZsSXE+tZvsSkWkUtn5UR0Hwu1xDjVd2+SD4CXI9xgP7SqvTPdI8tc4sq19+hdqcYFZIIW7SKq+yTDSiggRXwl41imqbnjeGxcU/pbAJb+R836N2yiVLQxrFmNCJXsqCQB8yB/6Ryi7s06QDPn5M2utWns0FGjReV5t0kmBNSQQVcylpRUB3iQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a4zLir7r4cUE9wikPfOL7fM/empip98R+ra1pTfITR8=; b=BYAEYYC1jRyPjgDlExJJiOu58U1L2zGlspoY5KwQzdOUaTP513S+xyiBzL/fIWIfj+95vnQlCfk6A0m43dc5hcxAJZyirWIkG2iC5AdLJue4+aZt8fuQxE1faCjRhR9tamuIC+9nMk9bIiAetTK34ihWQA+AUzp/8G2rzmNVcI8rRGk5XD0nWa6E25/8N2fjqz/i8COX4SIo4J/51G+cjFpqKxkyA2gP3EYK+aeAiU0CgX7BXeDvchePkRSAeStxLy8skjr04G/c9KcxSKzCyICwY14qCKwBh+ZivMKBv41Zk5uFckU0DIwtfG2///sfIbcVLO7E6IvQWsXcjcElDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a4zLir7r4cUE9wikPfOL7fM/empip98R+ra1pTfITR8=; b=cCFOnw4uhbP3JOnUdWN3MeWioFhG/xDD8ivVMLSYkvbjuB2eFvt0ItzLEp+izv3s8XE9/4pZcXpsVu7VdtdkiD+p5RyqEdTkiOL0fI9ih3LxO+tuGTqEAgFPqOEZyIvwRVP8f4cqAMsgYJ2MQbRdTAxJNxD3VZo+CP1i9INPF2c= Received: from BLAP220CA0029.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::34) by SN7PR12MB6957.namprd12.prod.outlook.com (2603:10b6:806:263::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.17; Tue, 4 Aug 2026 23:57:30 +0000 Received: from BL6PEPF00020E63.namprd04.prod.outlook.com (2603:10b6:208:32c:cafe::a) by BLAP220CA0029.outlook.office365.com (2603:10b6:208:32c::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.16 via Frontend Transport; Tue, 4 Aug 2026 23:57:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:57:29 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:57:28 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 05/10] KVM: SEV: Define SVM_SEV_FEAT_* flags using BIT_ULL() Date: Tue, 4 Aug 2026 18:56:06 -0500 Message-ID: <20260804235611.4053375-6-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E63:EE_|SN7PR12MB6957:EE_ X-MS-Office365-Filtering-Correlation-Id: c2967767-8758-4fd2-8add-08def2842498 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|23010399003|376014|18002099003|22082099003|11063799006|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: YZmNyc8E2xhGp3NQeYalCc1FE5KovITnNdjWB8gwhvMcsJPwn5CJ+0BIAtVdZwNJJMxiVcxzxU8QN+PDnYKyW7KAYk8Ls6xGmQNmeIo0OrdysiOWDijKPJ61q11gHHyYT+I846+pz6PFD7j5my5vcu+RQ+uoUHYR5nACpKlhb0vHPzEzubfU+FZ+hK3dL20yxZhl/yToRPbJiaQRxgmAQqB4wn5eaMcpEVGO1uDPSI2c2vjYUAWe1gyOyMrS3uR3qm9UJMUlBtJBRA4kkMVRbR75ScjTS9EhWlM95I/L0ujLLGIo+Xy5UxX73wK+HXROflKfmfXByjKkGOSG3o9TTvuE4SP8tijSNDmRaiX8DUjn0UVzg/lmWNa2doWs8+4L7XchrfT9aY01Jr77T3L0lC0Wr8jWcNeXOqfGyQPOLIr6WNwMDbvifoxjmVp7G00kpWeLZHe+j0JSRTzumlt4FBm7bs+F9eVdnnDZZ9izBdXOptof01QtRp2mnsfQkjLheze0rAlEShSqa7rUhAE4+g9IKSGiighy5s8ftKUmc98GuUW5x1nkKlyyleeT5AEE5HoBNNzabEgMVLhDEFjnYCLs7liRCPLYw+sp2I3b4sGNBNUBPr8QygpOFs+P3BrOpVB8CJ3OFTv3GP7GO+G8cQZVNpskD9dPZau4d4pVug0XqQJ/t2EQhmHlhGs3EqtsaNUPIHgp2wMjCcW053eDng== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(23010399003)(376014)(18002099003)(22082099003)(11063799006)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YUevFw78iNZNnieELHnz4dM7S3jfdPXtSmE2se+qnrEOc8JcVS4h43tIVE1dvx4rwCpeh3xj5uN6ScPY5xWkyWjxvFjXqiBwsQnlnAERSAHSnvesayLuEkU94vavYVr/2FjwvdrLksaAuInKrk8/2gAsdX5vvE0QrFWmP2TvfHppibxXxMOlox/h+ieCOC1BnVpZNq2ROTIwpP8eP4hnR/0nH8TwsakQ34T/EIA2FQjS5B/0/YPaWmlThDuLs2SI3B+0bQCHkdv+asdS9E/bXbKgZu0P1jpcBQqg172Ac2b6UxWr0sVfBFxNF2AECSEIZCJkMCphrkNGvW/xZibIO1LsEpeZls05HomEmRO/zYrY6OA6CwIFJwtAeKOokCbTqkAjGHZhXJRo3w5gy+Ayf1vfAdvsI6pYVBvHCXBTxoqb7YW95tL5baBtil6bBZK+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:57:29.6333 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2967767-8758-4fd2-8add-08def2842498 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E63.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6957 Content-Type: text/plain; charset="utf-8" The VMSA's SEV_FEATURES field is 64 bits wide: struct sev_es_save_area's sev_features is u64, as are the VMCB allowed_sev_features/guest_sev_features controls and KVM's vmsa_features / sev_supported_vmsa_features tracking. Define the SVM_SEV_FEAT_* flags with BIT_ULL() instead of BIT() to match that width. No functional change on x86-64, where unsigned long is already 64 bits and every flag defined today is below bit 32. It makes the flag type match the architectural field, keeps composite masks such as the upcoming SVM_SEV_FEAT_SNP_ONLY_MASK 64-bit, and avoids a latent trap should a future flag land above bit 31. The adjacent VMCB_ALLOWED_SEV_FEATURES_VALID already uses BIT_ULL(63). Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/include/asm/svm.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index aa63431ba92c..52c900bf7e20 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -305,11 +305,11 @@ static_assert((AVIC_MAX_PHYSICAL_ID & AVIC_PHYSICAL_M= AX_INDEX_MASK) =3D=3D AVIC_MAX_ static_assert((X2AVIC_MAX_PHYSICAL_ID & AVIC_PHYSICAL_MAX_INDEX_MASK) =3D= =3D X2AVIC_MAX_PHYSICAL_ID); static_assert((X2AVIC_4K_MAX_PHYSICAL_ID & AVIC_PHYSICAL_MAX_INDEX_MASK) = =3D=3D X2AVIC_4K_MAX_PHYSICAL_ID); =20 -#define SVM_SEV_FEAT_SNP_ACTIVE BIT(0) -#define SVM_SEV_FEAT_RESTRICTED_INJECTION BIT(3) -#define SVM_SEV_FEAT_ALTERNATE_INJECTION BIT(4) -#define SVM_SEV_FEAT_DEBUG_SWAP BIT(5) -#define SVM_SEV_FEAT_SECURE_TSC BIT(9) +#define SVM_SEV_FEAT_SNP_ACTIVE BIT_ULL(0) +#define SVM_SEV_FEAT_RESTRICTED_INJECTION BIT_ULL(3) +#define SVM_SEV_FEAT_ALTERNATE_INJECTION BIT_ULL(4) +#define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) +#define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) =20 #define VMCB_ALLOWED_SEV_FEATURES_VALID BIT_ULL(63) =20 --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010062.outbound.protection.outlook.com [40.93.198.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 46575456E0C; Tue, 4 Aug 2026 23:57:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887874; cv=fail; b=O73cL3fUfNFyupIDjiWBeONlrx61z94oLmC/tuvIcDtp7N8MjdC7g3lA3gx7zvayd7h6l7PtP6KpTSOU0DDdsIFtWq6UFuIZc+r1mWeudE1Ne/cOLc3uZCIHxAK2p+O3T70ZF4fKmEg+hQXjWTMeJpbiyhpG26KJWhsbb1cbhGk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887874; c=relaxed/simple; bh=CbNPk4evOHMWMjMwkpMr0RjynU1BI8Py5AE/OIoCeLE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KRbDboeoXN26rILljFm+6aR1gTH+7f/jf9Q73BZU4r0A6z80ozJB9mbVLzwf79fatf7s8CBgFpE+c5QujPR1LUK0cusJiVF3vS6BuJldYi4vOQlzMp0seJO19ihUWaEXoJ33W/rb1EBuYDe4deaQos2gfg8Np8EGbrtcVBjVz2w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=YitRQz6v; arc=fail smtp.client-ip=40.93.198.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="YitRQz6v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dzhljX6sVaweR4GJAE/dsSFXOi8/7iBpJ2k0IesuIkeSDkAsoTS9azB0gUEKz4jOQRjzrOVTUwwjZRvlKO+gqIoIGlaHftm+BrwaSjcfW3QSC8Cgt/eian521xHZJYvN1KEJupgkDe38uuMPFmMNsfb+cu0+ywVsOzRd4VRwacUSxEaoRvKAFsmM5rVFWWsC+2Fud7z3w6WMZj1pzdbjH5cHa2K7XCrA+OJOP/l9JIyROhgGa4AxWj34zC/1A5B4mAq2s0RbK4HawprgFfGPpYxTyGivS+YD/Q3Xo3BfN+UOim5+W7C2hSOiacnCu95IDGNvzQ345FNT5QfyoqlQYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DjbAwErg66wpFPoED/qfCl1bsMq/IJ54Dn73rA86eSI=; b=TTwfKQB/SBJdOxnT+a8UgMH8RMW438nkmD5nVZAW9zLIon3AHnmGvWol0kDoJqV/srLn95zQ26vCRHq0Ln5YNUGE+/a3DJNOjaNLg8lY1fjAdz8tf4oVywdJjTzYLj1VNH15aqYPgUfrrtRm6+pgtkvDV1QETvKSckfLcKEEk+LKtgd89aIdDHFRS/8LxqHkL07PTE6kTOTj775ZmXkVGiN3090s0TSoXuX42QV2TVTegPoZ9v3fN4jbie4PgsT7sKtEChNT/r1ZBQ3hfEHMhGjuGRjIFSnDCGAQX7BNuhVNrHDmzIie5OQcCiUvJxbe2KMiDefcNS8HxFmoX4trJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DjbAwErg66wpFPoED/qfCl1bsMq/IJ54Dn73rA86eSI=; b=YitRQz6vJdEWV/nk4xqcaUt08Jgnq7IxqrOwYOKOGxGO7J0Ov3n1CIOathUm32UZ3MkF6KcXdYH6zDKX9mYggZaPRki3QAzBhtmOWXU2uyCT/wyP5BvSCpN17bzpTTBNUZRTP62+VT+viMxi/z6zWdE32RRh4exFNo/vTVrQ9pI= Received: from BL1PR13CA0395.namprd13.prod.outlook.com (2603:10b6:208:2c2::10) by SJ0PR12MB6711.namprd12.prod.outlook.com (2603:10b6:a03:44d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Tue, 4 Aug 2026 23:57:46 +0000 Received: from BL6PEPF00020E66.namprd04.prod.outlook.com (2603:10b6:208:2c2:cafe::9c) by BL1PR13CA0395.outlook.office365.com (2603:10b6:208:2c2::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.13 via Frontend Transport; Tue, 4 Aug 2026 23:57:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:57:46 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:57:44 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 06/10] KVM: selftests: sev_init2: Use BIT_ULL for VMSA feature bit definition Date: Tue, 4 Aug 2026 18:56:07 -0500 Message-ID: <20260804235611.4053375-7-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|SJ0PR12MB6711:EE_ X-MS-Office365-Filtering-Correlation-Id: 54a751dd-4ea6-4b9e-5d96-08def2842e86 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|1800799024|23010399003|82310400026|22082099003|18002099003|6133799003|5023799004|11063799006|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: v7/cq28MGLbr7l/UbSmaLBbtF5D4PJEi7ZSCVHNoPImlZ+82fkdy7IE3rR1rCwDxariVLz05Hhw4060/DmDxJoZFHfnS37vnk7U4Yn0NkflTGRfkK0S0PVCVaRVI9UFz3QtFH+VcPbwYQ0YWw2gHtZdQIujrw7JJfXiTvgF/7o6xIDH/xCMKilv0I5HMeGLwp2Vk5g/owQfT+YKL/vOF5P9qbQRm8yP/aJb4K2jmXFb/U1+UrRK8pUrz7Yp8Db2qAmHovGQwh+DPDEab1IRgaPWbd3PDHoZQlNsVcIBhEvsLFm/pj1+C3nQziX2IWacR9GsFSgQSTWKV7ip4eGukouRugavtlUUJUzMBwQxLzwEVsIpMsJhEZnTgpGw1FtamuzAaTEB0lpvXXzy1NC+yFIPdVe3iRx/EUL8PH1oeY3hwgVBv5FWmo3oqDm3lRIm/fy7+cMaXQTFZ6+4290meOIEqWzkSWyXgVaee2tQ1MuL3b6SjQD+IT3QrzlXbl/8dJudsCKGQgxf70XBoqb6zeMgL05FuYPw6Cal58WyNkDhTyXgPd72lXI05UR48uK491Ymol1ODrSeZVA5teIxsr2NfZRQRRsoOYzxT0+gDYQnGbI4O7e2tdm1eMVfyOJ08D8ZHvUam/pznosXBQxP+zZddemt1pVFl6eYt/SemVNPw8kL4JbwN6RrCYFrvOM4vXKZ5mklEt8G/nzmLJTasEw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(23010399003)(82310400026)(22082099003)(18002099003)(6133799003)(5023799004)(11063799006)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wy7wm0AjmpbAJKNMXLbJ/z085yMp7a3keUbGZa+iG7loWhhQjoFnJFAGdyYD+pcm+dLyvnaPm0MEFwqH3xcjIG84paJV88ZguI9h36EW1QeefjC5g0/vmeq3fQnjWCTr3nx8r+oO9Mp47J3HVD96d170bioZkzzoG99GZ4IqokHUOQWX4+XK63v5OVbGCKU+PZgwEsv5eORCn59r7iZsnk4Jb8ummdlUo99WpLt7g1OLHM7O1ul0zjThSNhZMNJpTPR6wTqAWAGdyUrr+yYfYp7TIyiSleS6H2BLKG+XGKRgurvASxl09khTJOKTnij8UWlxntHmRlMxj4rA/mFFIH3mqWktSm9UwmMB7GlwsCbjGw6z7jIH80VMOLAqRHtdEZNMBx9ZPZnyv1SFiGFMsv0ZY4HEp11Bdy/kthEyni7zXlFJySwFYQu7GYc/NnFx X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:57:46.2871 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 54a751dd-4ea6-4b9e-5d96-08def2842e86 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6711 Content-Type: text/plain; charset="utf-8" SVM_SEV_FEAT_DEBUG_SWAP was defined as 32u, a 32-bit unsigned literal. The kernel's supported_vmsa_features is a u64 and uses BIT(5) for this feature. Redefine the selftest macro with BIT_ULL(5) to match that 64-bit semantic and the BIT_ULL(n) form used by the additional feature bits introduced later in this series, so every feature-bit definition in the file is uniformly 64-bit wide. The value is unchanged (0x20); this is a width/consistency cleanup only. Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- tools/testing/selftests/kvm/x86/sev_init2_tests.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/x86/sev_init2_tests.c b/tools/test= ing/selftests/kvm/x86/sev_init2_tests.c index 689390c10f7c..7b0643bf7ca1 100644 --- a/tools/testing/selftests/kvm/x86/sev_init2_tests.c +++ b/tools/testing/selftests/kvm/x86/sev_init2_tests.c @@ -13,7 +13,7 @@ #include "svm_util.h" #include "kselftest.h" =20 -#define SVM_SEV_FEAT_DEBUG_SWAP 32u +#define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) =20 /* * Some features may have hidden dependencies, or may only work --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013034.outbound.protection.outlook.com [40.93.196.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EA514582F0; Tue, 4 Aug 2026 23:58:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887888; cv=fail; b=g+7o/JsD+2pEIR5qNvMHBmCG9X/xgAMd0BzqU0PG8BjOp+NvRRChtSWxMXNK68ny0JcTknlSOsPhtS+DbiovQN8dbGrT15oZON5zv1boNiR4CuFGeCuFUMD3LFqpw1jGzev3V33rCB6BzSh2ihMyfkmbX69hD85Jh+IE1szpY4Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887888; c=relaxed/simple; bh=N7WwLBVLHuFhxyWgcB3UkZzCthwmdVPsSeb7LD6rxfI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MBVr92CyKQdcSxEbZIyxdqWP1RN6vOeGUs4xwx0ij2xedv6bBkZ6nCs+SBvcMtT2jMNLM+5zkmuIfb17j4df3zuwArrrjqnsfX/CpkummrCQRQgLXjrfAqsvnagUYXN4lHeiOcFON5XKcgyrcQX9H5O+aaJSttNCaCbLPxzfwio= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=jf1BxtIV; arc=fail smtp.client-ip=40.93.196.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="jf1BxtIV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PuL3FLEPVOGc/t7sbyN2sVxf5oaZ6C62Vi3zDjN62xRGcvCsL5tWdD2Sae71IFzKYs2Dwa2WI3s3yRBWIRtRDdo5SjKd9sTeacghiT7FyfUD0CusTDKVUO4s+9ZC1h1JtulqIfkWYldiwjD9IOj2L+muEqoRQzRfiPmoSbviUO7L3cq6SNrdS2MawWJJPdlk5VYfYbY29ltk1b/IF1khECCsqm+tHRxP36ueRyaWCgXyA30r+qnhgS2cyDTb+jppNSDNfv9IidnJ3gYPplwZ0ks5EbhIf31xmrpymR2C020oKEB4qa4GmIWf+oeWGcSpu883C68HCHJiMR3RqSwMIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/zUpMl9p5En0H7ADzo2SxrC/oJnoDzDsT42KG3D+4bY=; b=yhyfJgNkHIvH4Dsje3IdyQIN/yb0ni5YYMHvedgeDS1v2Pt/7KKALmT55A1WXZUt1eWr+2MAC0GcF3mLTEqY9wZf4X2HmtLQLYaDo1LKs0HXVIs8aSdx3WG5OliTI2lTHK3VErxn1RKVTF8yGHSrzl6ntYq+PTwv+tvk92THR1CIWn/xHUMhw6DDJQF70FxPkHoihwe62fz0VCCA/DeCMcSE/WG2jFIQSJeqXYX0gI7VyOte+PDuD8/eLWSVvDfTvzVcW1t0DBCl6Z4Lx1OfhNNFznN7dPKb/b+Gx0YJa3vUq9w9nMBcKcNY+TuWYRnD+lDwhJvK0gKx/+hTDVK7zA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/zUpMl9p5En0H7ADzo2SxrC/oJnoDzDsT42KG3D+4bY=; b=jf1BxtIVkjUAjEAJu4dwmoNT7km281ktq9jJuK8Nu4ocRJrAIVS5XKyAMwQPKhR+CcCsOmwZ5BcxTx/DSSq32Po3JBVPHqUW8JIyaxDJSgPDYJ7y8QYOnuO3d/Yr3nRJLDrBz5bxnNT9K9NfhdcT1w8vF8AKhkF0NXDkEwQ4dFc= Received: from BL1P222CA0030.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::35) by SN7PR12MB8027.namprd12.prod.outlook.com (2603:10b6:806:32a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.15; Tue, 4 Aug 2026 23:58:02 +0000 Received: from BL6PEPF00020E65.namprd04.prod.outlook.com (2603:10b6:208:2c7:cafe::25) by BL1P222CA0030.outlook.office365.com (2603:10b6:208:2c7::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.15 via Frontend Transport; Tue, 4 Aug 2026 23:58:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E65.mail.protection.outlook.com (10.167.249.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:58:02 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:58:01 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 07/10] KVM: SEV: Disallow setting SNP-only features for non-SNP guests via a single mask Date: Tue, 4 Aug 2026 18:56:08 -0500 Message-ID: <20260804235611.4053375-8-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E65:EE_|SN7PR12MB8027:EE_ X-MS-Office365-Filtering-Correlation-Id: 5668d252-c91e-49cf-e283-08def284380c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|23010399003|22082099003|6133799003|18002099003|56012099006|11063799006|5023799004|13003099007|10067099003; X-Microsoft-Antispam-Message-Info: d2CQuBJ817x94BC3bb1RH9Ro4CyRNAXyz9Otr7UfZMW8AMrJkqi/dZlhrEblxxq6RegxyZBK2BDUIi5GPs3AnN+mwfJp5R4Kx7p5Ic0HO0bOtE8BSyvmyx+/BRwpGia220W7d84oO3hsPRQobfV9mH8XOlIzrjt0QuexsgrIprG0eDRmldXfomvu9+kAFxt2jyK9tdoDNaZ+PpWOYsqwd5NfDrBMYL4azh8y3EjdtSemuBpngtcL1eb424LWmhSwFRWByAPZ4VpnQAKhWsRxIHG+8nDDrScGuSDbjHu/SvBmzJNqs7LaAPcev8CoCMtmuSPW+FEMFkcBO8DtNelMMKbrPoKjvyBwW2BlGwpU7gwxqjMRdtzRUhKORru388mXWxV1jDsevwzTOtZifW54+d1V3jVRnufbtr2MDMpP9Hy7qAvWRWYBV28xhbCgOe1Th21AlmaWISr2czdD0p+D/EDwhmzwgxTFoOnstSd3MFU6WPRm+1v7qZ42gFdgCGnzpn4+Sw+arZ5L7mxHwsIPwHx2qQj55+I4g69MuSwyoifkwTD1RlpMDQjT6gPq0bVBcjhvxjgupVKoAktlASKW0XGKNJKW7JmFYZZI1laYyT8SNwpbhu397Yu9ac6H6AWQDGjf5zDKr6jpAdXB8i5QMBUBoJxNzAqWNSVEH2vU3cZqAO+1STIefdTeIXioPmPKQEp/U9we6v+VoyRHd9cCOg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(23010399003)(22082099003)(6133799003)(18002099003)(56012099006)(11063799006)(5023799004)(13003099007)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: t4p27OEq2MvgPtPVRAXYQ7KYftYZM6rtRLe3KBE5t3aGJrKd78yF39EFy+TvwOTDI5Kx8XsR+oPBvFlZaKhZGquabKG2dz1SsJu4ex0IUPOLKEAlrydRmU5ClRrcf3K+tPrh+4v8kfZfOYpoVCDeMM9U7cmarqi+81VVZsF4VCJe1uh9G5QOCopwMZoaRIfdwcM6P8V5cxkqzUA/0385RynY1Ez9XDKw4WfXAn4TKOa2hPY4c/y+qsr+x3ylaESnbPOFnBHiG4D3vK7XL3NDJ6FPGMzsyL15mzh7OaMkIXZOImwTJ5TNbrbJixN/ggfyS/CWO5FuXjGnDvY35WmJ4QAlos8PIme+gXe1YuOH1AGA04Ofv8ltgHEyysYtNGgE1XD7ptMMLdqE8K2UoR+NuIOk/M3suJKrDp0EsoIN2xMW51cpldCVYuajhjwQKf3Q X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:58:02.2735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5668d252-c91e-49cf-e283-08def284380c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E65.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8027 Content-Type: text/plain; charset="utf-8" As SNP-only features get added, adding them to the valid_vmsa_features mask in __sev_guest_init() often gets neglected. Add SVM_SEV_FEAT_SNP_ONLY_MASK to help group these common features together. Also establish SNP_ONLY_FEATURES in the sev_init2 selftest as the corresponding mask for features that must be rejected for non-SNP guests, populate it with SVM_SEV_FEAT_SECURE_TSC, and exercise the rejection path by masking those bits out of the features passed for SEV-ES guests. Define the selftest's SNP_ONLY_FEATURES as ULL so future bits can use BIT_ULL() there without truncation against the u64 supported_vmsa_features. Suggested-by: Sean Christopherson Cc: Borislav Petkov (AMD) Link: https://lore.kernel.org/kvm/aaWog_UjW-M3412C@google.com/ Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/include/asm/svm.h | 2 ++ arch/x86/kvm/svm/sev.c | 2 +- tools/testing/selftests/kvm/x86/sev_init2_tests.c | 12 +++++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 52c900bf7e20..a206a0ed2c58 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -311,6 +311,8 @@ static_assert((X2AVIC_4K_MAX_PHYSICAL_ID & AVIC_PHYSICA= L_MAX_INDEX_MASK) =3D=3D X2AV #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) =20 +#define SVM_SEV_FEAT_SNP_ONLY_MASK (SVM_SEV_FEAT_SECURE_TSC) + #define VMCB_ALLOWED_SEV_FEATURES_VALID BIT_ULL(63) =20 struct vmcb_seg { diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 944aaea6501f..951f0e6be9e5 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -504,7 +504,7 @@ static int __sev_guest_init(struct kvm *kvm, struct kvm= _sev_cmd *argp, return -EINVAL; =20 if (!snp_active) - valid_vmsa_features &=3D ~SVM_SEV_FEAT_SECURE_TSC; + valid_vmsa_features &=3D ~SVM_SEV_FEAT_SNP_ONLY_MASK; =20 if (data->vmsa_features & ~valid_vmsa_features) return -EINVAL; diff --git a/tools/testing/selftests/kvm/x86/sev_init2_tests.c b/tools/test= ing/selftests/kvm/x86/sev_init2_tests.c index 7b0643bf7ca1..5f4032239f7f 100644 --- a/tools/testing/selftests/kvm/x86/sev_init2_tests.c +++ b/tools/testing/selftests/kvm/x86/sev_init2_tests.c @@ -14,16 +14,18 @@ #include "kselftest.h" =20 #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) +#define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) + +/* Features valid only for SNP guests, rejected for SEV-ES and below. */ +#define SNP_ONLY_FEATURES (SVM_SEV_FEAT_SECURE_TSC) =20 /* * Some features may have hidden dependencies, or may only work * for certain VM types. Err on the side of safety and don't * expect that all supported features can be passed one by one * to KVM_SEV_INIT2. - * - * (Well, right now there's only one...) */ -#define KNOWN_FEATURES SVM_SEV_FEAT_DEBUG_SWAP +#define KNOWN_FEATURES (SVM_SEV_FEAT_DEBUG_SWAP | SNP_ONLY_FEATURES) =20 int kvm_fd; u64 supported_vmsa_features; @@ -112,7 +114,7 @@ void test_features(u32 vm_type, u64 supported_features) if (!(supported_features & BIT_ULL(i))) test_init2_invalid(vm_type, &(struct kvm_sev_init){ .vmsa_features =3D BIT_ULL(i) }, - "unknown feature"); + "unknown or unsupported feature for VM type"); else if (KNOWN_FEATURES & BIT_ULL(i)) test_init2(vm_type, &(struct kvm_sev_init){ .vmsa_features =3D BIT_ULL(i) }); @@ -161,7 +163,7 @@ int main(int argc, char *argv[]) =20 test_features(KVM_X86_SEV_VM, 0); if (have_sev_es) - test_features(KVM_X86_SEV_ES_VM, supported_vmsa_features); + test_features(KVM_X86_SEV_ES_VM, supported_vmsa_features & ~SNP_ONLY_FEA= TURES); if (have_snp) test_features(KVM_X86_SNP_VM, supported_vmsa_features); =20 --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010050.outbound.protection.outlook.com [52.101.201.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 491C54582F0; Tue, 4 Aug 2026 23:58:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887907; cv=fail; b=WchNZBvUWtXq26KUBK2dqmNUieI1dc1Gh86QMSKHfslJ7XroFPJKSq5g0J+Rt/ULAkvSxpfuWKD4sxz5GJstoVJXNcrZqXJ0QtvsOvzClkqqJCXVzxqYpr7SppvsqOhpx3SvauxLhxXUP72dv7zeSN55YUfI7IMXQSqFdmDiMfU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887907; c=relaxed/simple; bh=JqWCvw6n1PXq0ecDyD/mlJcp57yfGaJpJZzltBJnM0g=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bMCHbAcgcAaRyreHhEMtug5YxJG+fVyDl184hen1va3oITUyf7Ya948ZqsrqPTa+Vhtyk/0gXRICW93+K/7ZOMq1UmM8EXCT8vI16ZhTR8L2kGaInwQGhC10GxgD2LbHhCK5jvv7uCT5bCges+mWy5+tCoVRVoOF3RutbSlrEcM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=5mU3h7EO; arc=fail smtp.client-ip=52.101.201.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="5mU3h7EO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NSHSNucMrg7kfmPC8UC5974pgYpYcVrhHW2SFx+YkLfqZ70WPVHiXp4w6ehimPoWFEeu3t+IeREHLmiXzP97RiBaHgz+AwKEu1aInBmPvOskh0OxHbHG9I3oQLgPlxpkwU8B6OnpB+0qFKSXvyyK9AVX2xUnEv8CHaAQYoMM7+bkB2Q/JJpKTylqxHjSOLUQvSJeicIRcoAqpl9y/BNaIe7fpDZNPuxYmX9otXqCQ6c1rQRfBI4f6EX5ThCcfQXq40KKY5m/9kUqrB/9Akp0i02SouST72t9YJ/ey6rPwHIzJnj21VurDXt33/JdVNWJ2cHKsOO52OUKcj8oY/vNjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9yUNlP56oYRLa/AYEo+qJ09/sa+osMtl8RYNNaGWUpc=; b=OCusul1aIAPK9XqwH9Cb6cktpK90gDrGdNDQcjDQqFswPaBMdbjCGjexxv0HE72udsAAACwLBZAfRoNx2eBz0Fxd/AUUgKpKUEBuAYQei8BZnLGopH/3sW1bc9QcJHNR3qcUja03WhWi8hmKKj+OBU/8hyITNF0Q/P8xXiTDdnVZv1bY9NwUfSF7sWIgz8zAd3OvYXs1VyhIjk7syDI/2qwkMw5Vp4kfKoTobQXIhhGQILOzslJJRbNN7dguqT6lqJY0Y4QRvC4BVxDPTlsf/A44DJU9yhuk4/QomwRmaAgpIfd1YSEuc8YM9QJNvJZMFLQ34jaLg7ty2F1FxnTddQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9yUNlP56oYRLa/AYEo+qJ09/sa+osMtl8RYNNaGWUpc=; b=5mU3h7EOGolMciemPVrd/AP/IBBMhv7XWzrbr7lxD4lIY+SP5TS3pIOjUAj46Uvbz2dm+X8pAjfijN1RMEc6pv9lYAmTSKbUm3Rcwebyp57GDBeh5mPOOKeHZOWQYka1j1kup+XJ9Zjp0mPtHQLHkELZ/HgUMQ/HNZvuicm6WnQ= Received: from BL1PR13CA0225.namprd13.prod.outlook.com (2603:10b6:208:2bf::20) by SJ2PR12MB9244.namprd12.prod.outlook.com (2603:10b6:a03:574::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.15; Tue, 4 Aug 2026 23:58:19 +0000 Received: from BL6PEPF00020E62.namprd04.prod.outlook.com (2603:10b6:208:2bf:cafe::2b) by BL1PR13CA0225.outlook.office365.com (2603:10b6:208:2bf::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.16 via Frontend Transport; Tue, 4 Aug 2026 23:58:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:58:18 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:58:17 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 08/10] KVM: SEV: Advertise SVM_SEV_FEAT_SNP_ACTIVE Date: Tue, 4 Aug 2026 18:56:09 -0500 Message-ID: <20260804235611.4053375-9-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E62:EE_|SJ2PR12MB9244:EE_ X-MS-Office365-Filtering-Correlation-Id: e0e1d253-1ad4-42f5-782c-08def28441cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|23010399003|22082099003|18002099003|11063799006|5023799004|13003099007|6133799003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: pTbuqi/a0iOu+inuFtglLZ63Vr8ZP/dXtieivKbmiVP00KPD4lT1bi1FAFUo4oSplS6eGl7QT7+WnrsFdbrjeDIzT7wMubvZFrhr60uHltu3vkyAHsxJ+QOfefLmIl5YN/9+9DFXTXV3ormxMa9LfmDrADE9ZcJ/fO+YBYMdvGjO/w/+I1c7WHcw/Wj9ppRa+vPkHMZ1CtGxLn3SN+bWnTaXZ5iP8TTCenuZ0vr1nuMZFn5Y+PVMDLGo79k56tOiTvNNXSavtGJ5N55ukFwLhtb+0Hn2k5N6Hgiz1YrI2OHfSm58wXalvFgAYDFsZFI22g8xo0j8CMXM+CS2nLvIG22yFeHN1OQ8gmpFGxfMyx3Kh750yapwKN+iKGTRKgGZs7JeKJ7q2l2Ta+a7IPAvNHX9vzsI479hCNgYyj+CX6BkgGGzPy1Fv+8HwKO/lezF5Nj33JkpZq+CA1f6C5XWSM4TPh/Cno9Iv533B04v3+j89+uMwX7zYbrPe3jPdiMxYXE+PabiOczfInmMleM2ve12xsaAFfEJWt5W+K9rRbJ3TSlaKYsy3qy222KCJcH7nvqXPIbPwRAPwIHNNmongaWFavy/l77tcZZyzdDCeXGH0V5buJlNrE/UpirUcBSkC6XWaDMflqXwMNwOv/oL1aQxSu6tuZizi15KffV0igGUguD1O3AdtDhADBK29TFXa64iW25cFn2u8HIWVldlqQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(23010399003)(22082099003)(18002099003)(11063799006)(5023799004)(13003099007)(6133799003)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jnqXdGfV6CMSlxtWCVH2A/s3yDl1FwpNY60Yudwlyx+/F+dMMyyu7QKR2zQW3RKfTY3baQ1lDSMWBPpRgssCvlih4jBnHi+Y+x7UUa23cdPGr8rnygAWfsim8F/5U3bT44JRdrAlDXvYIt3T0rY1yhV9389BDIMxsx27OjYBki0+lzWFRSxKSPv1rIiWnodiqNiBrF9vxnKreyjS1M8TF3+vF0xZIkY6+SwLDkOL7ciATVE2aOfwYy+vkaxSletMVwLxYV/qtQkkldc1ooqmm3jerzIaYU1p7T4MHye8ckZVVZQkbfsnoYZQrLIdcQUKxu3HEL9W7hcwaNW39gz+RErPa4HJKRqrQVYZQ2revPc2WIhq6VZHX2CRLLN4qly5E25R042rJxXvHZvS56CqbZIgqKOxSz/q/Z7XaYmcY4juZdwfEcGINjf+AQKY6BNe X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:58:18.6345 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e0e1d253-1ad4-42f5-782c-08def28441cd X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E62.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9244 Content-Type: text/plain; charset="utf-8" Allow userspace to set the feature in kvm_sev_init.vmsa_features. KVM still needs to set the flag for backwards compatibility, but disallowing SVM_SEV_FEAT_SNP_ACTIVE for an SNP guest is "bizarre." Suggested-by: Sean Christopherson Cc: Borislav Petkov (AMD) Link: https://lore.kernel.org/kvm/aaWog_UjW-M3412C@google.com/ Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/include/asm/svm.h | 3 ++- arch/x86/kvm/svm/sev.c | 8 ++++++-- tools/testing/selftests/kvm/x86/sev_init2_tests.c | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index a206a0ed2c58..facabba26a91 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -311,7 +311,8 @@ static_assert((X2AVIC_4K_MAX_PHYSICAL_ID & AVIC_PHYSICA= L_MAX_INDEX_MASK) =3D=3D X2AV #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) =20 -#define SVM_SEV_FEAT_SNP_ONLY_MASK (SVM_SEV_FEAT_SECURE_TSC) +#define SVM_SEV_FEAT_SNP_ONLY_MASK (SVM_SEV_FEAT_SNP_ACTIVE | \ + SVM_SEV_FEAT_SECURE_TSC) =20 #define VMCB_ALLOWED_SEV_FEATURES_VALID BIT_ULL(63) =20 diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 951f0e6be9e5..6baf458383f4 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -3219,8 +3219,12 @@ void __init sev_hardware_setup(void) cpu_feature_enabled(X86_FEATURE_NO_NESTED_DATA_BP)) sev_supported_vmsa_features |=3D SVM_SEV_FEAT_DEBUG_SWAP; =20 - if (sev_snp_enabled && tsc_khz && cpu_feature_enabled(X86_FEATURE_SNP_SEC= URE_TSC)) - sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SECURE_TSC; + if (sev_snp_enabled) { + sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SNP_ACTIVE; + + if (tsc_khz && cpu_feature_enabled(X86_FEATURE_SNP_SECURE_TSC)) + sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SECURE_TSC; + } } =20 void sev_hardware_unsetup(void) diff --git a/tools/testing/selftests/kvm/x86/sev_init2_tests.c b/tools/test= ing/selftests/kvm/x86/sev_init2_tests.c index 5f4032239f7f..2e016cae4ebe 100644 --- a/tools/testing/selftests/kvm/x86/sev_init2_tests.c +++ b/tools/testing/selftests/kvm/x86/sev_init2_tests.c @@ -13,11 +13,13 @@ #include "svm_util.h" #include "kselftest.h" =20 +#define SVM_SEV_FEAT_SNP_ACTIVE BIT_ULL(0) #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) =20 /* Features valid only for SNP guests, rejected for SEV-ES and below. */ -#define SNP_ONLY_FEATURES (SVM_SEV_FEAT_SECURE_TSC) +#define SNP_ONLY_FEATURES (SVM_SEV_FEAT_SNP_ACTIVE | \ + SVM_SEV_FEAT_SECURE_TSC) =20 /* * Some features may have hidden dependencies, or may only work --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010067.outbound.protection.outlook.com [52.101.201.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2683445A2A1; Tue, 4 Aug 2026 23:58:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887917; cv=fail; b=D/IUmd0vmhSJ7COUHnpj/LqHQKipFea584D/mBCPkizQgcZJB8p35lCEQ5TdosNdBP9jd4cK5EGZLK3bvQrIgpOdu5Hq2NTw+dlZeGyBagd0qb5zcnOXlFxkOZFOfJ8k3se/pkn7oWaHYngX+Neyh6eoU22WuTN0fw0DEelSkdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887917; c=relaxed/simple; bh=D2BFSOKK+PS1S1uSPgp2sRifgd1j0o5B15LkN3eU5gU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OKtgOZOwnBQoAvfB/n2G/Wbo3kkGO/8JPqPVn9G46gG+0ljI2gBL+vQRwMlYgedypOjE6DL1yZx11jc9fedlMbDbGWahxG/V7ns+FaP86W/ke4xgqAhRpmRN+jH8H4KZ5LBxN/pJ2EtHNVs0qF7BAfd4lODWTW1DT3gQvFmYAzQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=f7tGKu3q; arc=fail smtp.client-ip=52.101.201.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="f7tGKu3q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PiFJZPRRLq6MS5CgiNPfcQiKbWD2w64kzn7ZCQKbqlEtAkdMvgsPvLHZVl+3xbC+PWBhpNWrKcUYOp1kdamQ1mruyiRJU6lIkX4RIY0IKaCmf2qi+HoIzU1tKpnHcuSC7pkmwr6eXTMXzC17n9emgn/aUQBzd8UX1E0l02mAmEHiM75zhh/K350Jp2SPqeukeBMaomAoXIAqywh+RIII+d6oBXqdszi5QfyMzkXCmnCwfPB1uzV6T1zXiGfhvixtXux1YHnk03+CKTt+d5DEb+UrVV249fCYiw52Ea320KKhgIsbBWws+9pQrJVsRGMoZPFqj8/1LD8L55xMnUNwtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=agKBAIkdcUX1mAByCSYZCZkvQllQ6CnkomtPJKlO2CQ=; b=HEEnfvyaXkGOX8cHspY3Z9TZjrHP3v3TPY88puvU0YFRu1OKB3pDFVdQ63uMcxIMxaEFAIezMvQ0XtWGzG3hABAwXGHe5c9QHxSGa4EReKtDeJwv2PB0mvUX6n7o5cbZi011nHdjugrufAQ+AYUgx+jZ7fJoiu6kkJD0w1Fs3M/765mGQNJWCTWZoqDOMw8p6iugKHrd5nORH7pwMrv0AGZ8fcDJrfqRLwnafyl466qMuX/gQxJSM1guI/Bmi1be5d5jtywS9SpG0k4HqzWfweSQPCuOxRh8LN6YGvnssJqBglWw7yOwxLUak5SLMiDnYGEamIvmFBS6oH9cYzZmbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=agKBAIkdcUX1mAByCSYZCZkvQllQ6CnkomtPJKlO2CQ=; b=f7tGKu3q5O0OuTV2gAgnb20jbnq8Scf2OUkPHJ+PVAiajigyugDwmew+yOAdCUsTMe6ABb5gb6qerC6zdJikdQnaOrBze6Xyjy18r1OBcpFSPqUogUMglOykcLIzDa57Dp56JmNCaQJos45+xiB33CTmbXw3frG4linMKVmrRpk= Received: from BLAPR03CA0179.namprd03.prod.outlook.com (2603:10b6:208:32f::33) by DM4PR12MB6230.namprd12.prod.outlook.com (2603:10b6:8:a7::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.18; Tue, 4 Aug 2026 23:58:30 +0000 Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com (2603:10b6:208:32f:cafe::36) by BLAPR03CA0179.outlook.office365.com (2603:10b6:208:32f::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.15 via Frontend Transport; Tue, 4 Aug 2026 23:58:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:58:29 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:58:28 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 09/10] KVM: SEV: Add support for IBPB-on-Entry Date: Tue, 4 Aug 2026 18:56:10 -0500 Message-ID: <20260804235611.4053375-10-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E5F:EE_|DM4PR12MB6230:EE_ X-MS-Office365-Filtering-Correlation-Id: a333bb30-839e-4d4f-1475-08def284488d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|23010399003|376014|1800799024|13003099007|6133799003|56012099006|5023799004|11063799006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: aiS/h43VtTUpf/hhklQt/FdSyEkQKVKmUQn3ZE81b+JLhuwwTs6yQOTKVu5BxBDBXWZT8/QONcfX/QzZlO7MGofF7JzIrkEEkfTAqIEHVLvHNC/+rMHmcOu6DR4KkwXdVbEWghxiuUfOJk1wF7MBCK8rvyOmuWMve8IbG7NtxhOrlHl3V0N7+/Mo99+tjSA78Jd90aZ0nTJfReTvDhJeJVkmhn2bNUsCXq5CHeTTbMx+BE5eFymZzC7nIDYWdhHI67Teq4FFw5Kr0FCGK4Xf4NGIeIZ5Vgx9RQZiM/bEVX9lapah5SoaNSFz4By9/CdiYLrOf14fEHqgSDJSOp+6j/hrbD9+csm8frmGzteowt4uLJwItuwyFuxH5PvEFb+ZUzH/PgmJ2OamtvH5YJaEuJHXAuXM8RQnUTcN/hgI+goX8DSW/JtCciEh/LYVc5Jnw9vTC+qKpE3JufNhqZCFF3owFL062dRxteh7bbtimxWNL1kR/tBFTBRKS6sxCHCY6sDZmX4Dpo2Sgy13UX35rhW50iZ6brPAHZ9UTApSB+WwLj4E9GZqM4IT0Q6LspwdmriXXOfYc8X3Ev8tSE+2tk+RuI3AzJbA2I9OsbMJ1tZhscpd/SVOycl1Lv7dgODDazhzO4v5LSC0zDDOOksBQjVC33HZ2GSls9fNtWzfdks= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(23010399003)(376014)(1800799024)(13003099007)(6133799003)(56012099006)(5023799004)(11063799006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +YS5CQZAwuJAvKbloEFx7XhaXFby3lWshY5KOClQt3+qagyi1z/xyr6osl8cq4pRGmcMRoBjsptXfTPnPyYd1LMM97AxuFjxsPIGEampgSM7HxYS47iFloY7Xc2yJsTIV7Ho7RTCAFNP1aVrD0VCzm2kwzDbtgd3L+SOsdD8YP6PLMnUMvljKGWR1NWd75jF2p4FqNpCqMIdNHiHnCCpk4U12qiyiJvWzwuKIx/2egEFbOZwi1C9o57YEp6umnt5O6dMG67bXix13msSchubQFsq7XWRq+CikRcnFH74U6f7MY9siTuSa18d4Z8GFYNgDfuzgl0Mzc7xj8Z9ZngBX5Q3J2d88UlmGu2y+SRm25WeZEzuG46HsxbSTiV3TIXM/Z/YWMNBkfsi9tcTgh2QpnYD8yGZcWXi1kx+I/kbiSeKv2S2AOt+hX86QSZWfbU/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:58:29.9534 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a333bb30-839e-4d4f-1475-08def284488d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E5F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6230 Content-Type: text/plain; charset="utf-8" AMD EPYC 5th generation and above processors support IBPB-on-Entry for SNP guests. By invoking an Indirect Branch Prediction Barrier (IBPB) on VMRUN, old indirect branch predictions are prevented from influencing indirect branches within the guest. SNP guests may choose to enable IBPB-on-Entry by setting SEV_FEATURES bit 21 (IbpbOnEntry). Host support for IBPB on Entry is indicated by CPUID Fn8000_001F_EAX[IbpbOnEntry], bit 31. If supported, indicate support for IBPB on Entry in sev_supported_vmsa_features bit 21 (IbpbOnEntry). Also add SVM_SEV_FEAT_IBPB_ON_ENTRY to the sev_init2 selftest's SNP_ONLY_FEATURES and KNOWN_FEATURES to validate it is accepted for SNP guests and rejected for SEV-ES. For more info, refer to page 615, Section 15.36.17 "Side-Channel Protection", AMD64 Architecture Programmer's Manual Volume 2: System Programming Part 2, Pub. 24593 Rev. 3.42 - March 2024 (see Link). Link: https://bugzilla.kernel.org/attachment.cgi?id=3D306250 Cc: Sean Christopherson Cc: Borislav Petkov (AMD) Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/svm.h | 4 +++- arch/x86/kvm/svm/sev.c | 3 +++ tools/arch/x86/include/asm/cpufeatures.h | 1 + tools/testing/selftests/kvm/x86/sev_init2_tests.c | 4 +++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpuf= eatures.h index 3d0940a3b9f3..11e40644b967 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -460,6 +460,7 @@ #define X86_FEATURE_ALLOWED_SEV_FEATURES (19*32+27) /* Allowed SEV Feature= s */ #define X86_FEATURE_SVSM (19*32+28) /* "svsm" SVSM present */ #define X86_FEATURE_HV_INUSE_WR_ALLOWED (19*32+30) /* Allow Write to in-us= e hypervisor-owned pages */ +#define X86_FEATURE_SNP_IBPB_ON_ENTRY (19*32+31) /* SEV-SNP IBPB on VM Ent= ry */ =20 /* AMD-defined Extended Feature 2 EAX, CPUID level 0x80000021 (EAX), word = 20 */ #define X86_FEATURE_NO_NESTED_DATA_BP (20*32+ 0) /* No Nested Data Breakpo= ints */ diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index facabba26a91..9d8107824d10 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -310,9 +310,11 @@ static_assert((X2AVIC_4K_MAX_PHYSICAL_ID & AVIC_PHYSIC= AL_MAX_INDEX_MASK) =3D=3D X2AV #define SVM_SEV_FEAT_ALTERNATE_INJECTION BIT_ULL(4) #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) +#define SVM_SEV_FEAT_IBPB_ON_ENTRY BIT_ULL(21) =20 #define SVM_SEV_FEAT_SNP_ONLY_MASK (SVM_SEV_FEAT_SNP_ACTIVE | \ - SVM_SEV_FEAT_SECURE_TSC) + SVM_SEV_FEAT_SECURE_TSC | \ + SVM_SEV_FEAT_IBPB_ON_ENTRY) =20 #define VMCB_ALLOWED_SEV_FEATURES_VALID BIT_ULL(63) =20 diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 6baf458383f4..85a692840886 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -3224,6 +3224,9 @@ void __init sev_hardware_setup(void) =20 if (tsc_khz && cpu_feature_enabled(X86_FEATURE_SNP_SECURE_TSC)) sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SECURE_TSC; + + if (cpu_feature_enabled(X86_FEATURE_SNP_IBPB_ON_ENTRY)) + sev_supported_vmsa_features |=3D SVM_SEV_FEAT_IBPB_ON_ENTRY; } } =20 diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/incl= ude/asm/cpufeatures.h index 3d0940a3b9f3..11e40644b967 100644 --- a/tools/arch/x86/include/asm/cpufeatures.h +++ b/tools/arch/x86/include/asm/cpufeatures.h @@ -460,6 +460,7 @@ #define X86_FEATURE_ALLOWED_SEV_FEATURES (19*32+27) /* Allowed SEV Feature= s */ #define X86_FEATURE_SVSM (19*32+28) /* "svsm" SVSM present */ #define X86_FEATURE_HV_INUSE_WR_ALLOWED (19*32+30) /* Allow Write to in-us= e hypervisor-owned pages */ +#define X86_FEATURE_SNP_IBPB_ON_ENTRY (19*32+31) /* SEV-SNP IBPB on VM Ent= ry */ =20 /* AMD-defined Extended Feature 2 EAX, CPUID level 0x80000021 (EAX), word = 20 */ #define X86_FEATURE_NO_NESTED_DATA_BP (20*32+ 0) /* No Nested Data Breakpo= ints */ diff --git a/tools/testing/selftests/kvm/x86/sev_init2_tests.c b/tools/test= ing/selftests/kvm/x86/sev_init2_tests.c index 2e016cae4ebe..ff4322a940c6 100644 --- a/tools/testing/selftests/kvm/x86/sev_init2_tests.c +++ b/tools/testing/selftests/kvm/x86/sev_init2_tests.c @@ -16,10 +16,12 @@ #define SVM_SEV_FEAT_SNP_ACTIVE BIT_ULL(0) #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) +#define SVM_SEV_FEAT_IBPB_ON_ENTRY BIT_ULL(21) =20 /* Features valid only for SNP guests, rejected for SEV-ES and below. */ #define SNP_ONLY_FEATURES (SVM_SEV_FEAT_SNP_ACTIVE | \ - SVM_SEV_FEAT_SECURE_TSC) + SVM_SEV_FEAT_SECURE_TSC | \ + SVM_SEV_FEAT_IBPB_ON_ENTRY) =20 /* * Some features may have hidden dependencies, or may only work --=20 2.43.0 From nobody Fri Oct 2 05:28:57 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012010.outbound.protection.outlook.com [40.107.209.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 689A446C82C; Tue, 4 Aug 2026 23:58:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887929; cv=fail; b=nFSZ2989ftJycMZmp6bwRL8D4xQEuPz0JfrS5+kVS25ucyX7TCvQSbVcv6dr16rFsPgaR3zwJnF0Ybrg88lj4NoH71JwsgZMBV3hbeHUFej49hMjeKNXbhbb3LIA1GP0mr3zAljcnXhotQV72NXMcmVCCYfml7hitErxm/Axtos= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785887929; c=relaxed/simple; bh=H/dQG4vl+rW9sRAyyYQtemULJ8k11lUDSzpbzo9mrlc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LOokObuj6pI/2KLm7KSbOlXXQ58dtjXDYW9xMe0/TT48dGJHjX0RTlX5CifiC90vXkHQ9R7ODaRRLw8BeH6ImZzHu2TyLwzXoLj4hH9KRdLE8YQ4I1u61ky0meMJ+B91s+0HrOwjscNFusCzulLCxWLz4RD/pe6Y7FUBpya30Eo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=wKZrseyl; arc=fail smtp.client-ip=40.107.209.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="wKZrseyl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TJo47cmQrp8ElH2nains7Gc1aCHm5cT+00SCecXJlIXL5xD8xBiHpkbq3x3KHW8x40nfWH4QagWqFg9OmazgYeRi5TyTWQgI0qjM+RDBnS2wUnxSTsShjOuql4M6exEoTkFhY7QOBywROIKLT/sE/wDxgFfGxDzbWaQYExJYug9LIe3x+4HkM2Y6b4QM8HZfpICZlfSHjzxTP2Xpb9AzgRr4meavRuYGk3Ft0YDLKjme0B491OMvuHfV+9pUNHesnhJol7LTGM0YSdsqqRbOXhG20B7cX6nmV3eFG3THGSmoynqpX8csw8swvVvozuhs5Iti+FMa2btW5El3GDpaKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MEOPtcs43LcolZkGd56P6R+xK46bFqS7t9QZ7qusE6M=; b=j2kUuIUdDf3rFYZhYinyzDPP/fY59B62fzkNwpok/Ac+oWaXjX+YjskYHY4EuGHfaXnLTfgXPin8aTlnmiVK4F21wf7Qy3+1XfOZ0qbvfR4q69mO16km0vETjc78K34tLSf9K3W2gQ1vT4C6yoft5x5uWd/dwsOtU/aNo4Nvy3XPR0IntwRrdd/mgo40rhDnrTGr7oiTuxOzXxoQiHXw/VnC/Jfy5uK911JUViLc8EQUyx3rgv+Gq2NLYBkPCkxZPZIbQpcHwVkVkzkQHrMYFtuYKvPtB0SoVgRpPM8iMsfKUA2Mtz5VMkRQaXnu32/nbDmmvRc3AUSCoqLYe2KpkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MEOPtcs43LcolZkGd56P6R+xK46bFqS7t9QZ7qusE6M=; b=wKZrseyl9+ZNJ1tHOi38ANxemyWoRu+dVSAoWMuXQ5bTCzhqMNUIwsugCUtro+U757Qmzt2u1/3a6RB5WgkwU7v5w1mK8EUC8ikdW59wHLqTrrULymYBflOJJfskAMrC5VXKqfsIQVKlQ0xOn2t6GgfbUC0fXcypTMKpZ1+91y0= Received: from BL1P222CA0001.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::6) by PH0PR12MB7983.namprd12.prod.outlook.com (2603:10b6:510:28e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.18; Tue, 4 Aug 2026 23:58:41 +0000 Received: from BL6PEPF00020E65.namprd04.prod.outlook.com (2603:10b6:208:2c7:cafe::24) by BL1P222CA0001.outlook.office365.com (2603:10b6:208:2c7::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.270.18 via Frontend Transport; Tue, 4 Aug 2026 23:58:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E65.mail.protection.outlook.com (10.167.249.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Tue, 4 Aug 2026 23:58:41 +0000 Received: from dryer.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 4 Aug 2026 18:58:40 -0500 From: Kim Phillips To: , , , CC: Sean Christopherson , Paolo Bonzini , K Prateek Nayak , "Nikunj A Dadhania" , Tom Lendacky , "Michael Roth" , Borislav Petkov , Borislav Petkov , Naveen Rao , David Kaplan , Pawan Gupta , "Dave Hansen" , Kim Phillips Subject: [PATCH v4 10/10] KVM: SEV: Add support for SNP BTB Isolation Date: Tue, 4 Aug 2026 18:56:11 -0500 Message-ID: <20260804235611.4053375-11-kim.phillips@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804235611.4053375-1-kim.phillips@amd.com> References: <20260804235611.4053375-1-kim.phillips@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E65:EE_|PH0PR12MB7983:EE_ X-MS-Office365-Filtering-Correlation-Id: 6712bfc7-fb64-42a0-fc67-08def2844f4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|36860700016|1800799024|82310400026|13003099007|3023799007|6133799003|56012099006|5023799004|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: C+87YGtamE73bWtu/ZItCDy/B/NImjhrGLYB6UNglJ+4TuWaicZ7Vag+Y7JJNbp3IKgcWXcJLxFRjDvDwaS5Nd+LA14tzQBwxG5DY88cHcuqHFeGSy6+OIxfQo/jtivcIuVTPcietfwS/PrwzPSDm853n1gUyfbrUt8toz8YiDzJnYFVLzHeOGCdvI5QY0LoUnhwCyTwzaArnxypshuPmvCK92NTjC4490lytyyyuVWRrfLeZC+G3HG46f94TcR6akmDAC3c1yVGqqzkDrssCYKK64vyCQt2XBUTJTr7TaCBhFMzFwSu+vQtMnXzPTsBDOD4KXVn5f4XPbbgtI5NfEzfuoiwOi+jhY6req1GuOQPqm8lfv6sptRUVlCKG9LD4LXy/mNJFeSSxeyB8a/mA1hOSQtrotPvH2k6Rz/NRX1VP34ES1vuHy+yPHJRv7NSoBs1xkKjHUoET0ZtYrRq11xFAB4qIyV/95rEy86pbPkDkILMe6fHzOk9CjQop2a+hD9Y3NaKFvnsbhh9+qq7oAUD77GPUtZpbdPfgKLNK63EMrn9RmIBvmLs7dheB/ME29xBJia6HAgXhGbQusPJet9hPebpPXPWT5JMGsDD9hZENAqHggZMolG0ayQqiadvUeeDzngG7HV3weC+VcyGew== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(23010399003)(36860700016)(1800799024)(82310400026)(13003099007)(3023799007)(6133799003)(56012099006)(5023799004)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4Xbzc6ipmo1RX03vy4l+Rgcf+OiFyJShnTlhqtcb4hYso4NMpek/J52X18Ewy7a8X2NEnAwsgAcz2vGFvFWO13xzWCvI3XDsEIvpYG7u19bl4OoK5hMPQkiVEr7SM6TefruxadXijBEm/gIz0w0byQ1yrokcnjEsh3Xy53UO3c/RVAEaWe6LpdXYa7pbn5T5MQsT0VgknwMkBBXHAQElyIalm4+y4WDskRELEnqXLtv5jooOlrBocLY54GRheWCPeBErGwV6ChmgMsmeGoBDNO0AaHyNSfzCAUYsnirdiaGEvy9GBAPiNr8DZuPA4B0DZqmKS5G03XIi8dr2UWiMsaGWOQ6CwD4DODlTNW7CGCZhJwl2kgo39Gmu+LfYpRJD9tJa/7weiJlhf/6BhugrRMrraeKBmdwWYbmLaHZAsRuO1ZV8XeJZQpH8yr3fKBqJ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2026 23:58:41.2917 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6712bfc7-fb64-42a0-fc67-08def2844f4e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E65.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7983 Content-Type: text/plain; charset="utf-8" Advertise support for BTB Isolation via SEV_VMSA_FEATURES when SNP is enabled. BTB Isolation is an optional feature that can be enabled by the guest to ensure its guest Branch Target Buffers (BTBs) are not affected by any context outside that guest. SNP-active guests may choose to enable the Branch Target Buffer Isolation mode through SEV_FEATURES bit 7 (BTBIsolation). Unlike the sibling features advertised here (Secure TSC, IBPB-on-Entry), BTB Isolation is advertised unconditionally. This is deliberate, not an oversight: the AMD64 APM (Vol. 2, Section 15.36.17 "Side-Channel Protection") defines BTB Isolation as architecturally present on every SEV-SNP-capable processor. There is therefore no host enumeration bit for it (no CPUID leaf or MSR capability), by design -- unlike IBPB-on-Entry, whose host support is enumerated via CPUID Fn8000_001F[IbpbOnEntry] bit 31 precisely because it is not universal. A per-feature host gate is thus neither possible nor meaningful; if SNP is supported, BTB Isolation is present. Also add SVM_SEV_FEAT_BTB_ISOLATION to the sev_init2 selftest's SNP_ONLY_FEATURES and KNOWN_FEATURES to validate it is accepted for SNP guests and rejected for SEV-ES. For more info, refer to page 615, Section 15.36.17 "Side-Channel Protection", AMD64 Architecture Programmer's Manual Volume 2: System Programming Part 2, Pub. 24593 Rev. 3.42 - March 2024 (see Link). Link: https://bugzilla.kernel.org/attachment.cgi?id=3D306250 Cc: Sean Christopherson Cc: Borislav Petkov (AMD) Signed-off-by: Kim Phillips Assisted-by: ClaudeCode:claude-opus-4-7 --- arch/x86/include/asm/svm.h | 2 ++ arch/x86/kvm/svm/sev.c | 7 ++++++- tools/testing/selftests/kvm/x86/sev_init2_tests.c | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 9d8107824d10..0da2234b71c6 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -309,10 +309,12 @@ static_assert((X2AVIC_4K_MAX_PHYSICAL_ID & AVIC_PHYSI= CAL_MAX_INDEX_MASK) =3D=3D X2AV #define SVM_SEV_FEAT_RESTRICTED_INJECTION BIT_ULL(3) #define SVM_SEV_FEAT_ALTERNATE_INJECTION BIT_ULL(4) #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) +#define SVM_SEV_FEAT_BTB_ISOLATION BIT_ULL(7) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) #define SVM_SEV_FEAT_IBPB_ON_ENTRY BIT_ULL(21) =20 #define SVM_SEV_FEAT_SNP_ONLY_MASK (SVM_SEV_FEAT_SNP_ACTIVE | \ + SVM_SEV_FEAT_BTB_ISOLATION | \ SVM_SEV_FEAT_SECURE_TSC | \ SVM_SEV_FEAT_IBPB_ON_ENTRY) =20 diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 85a692840886..ee14795a20bd 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -3220,7 +3220,12 @@ void __init sev_hardware_setup(void) sev_supported_vmsa_features |=3D SVM_SEV_FEAT_DEBUG_SWAP; =20 if (sev_snp_enabled) { - sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SNP_ACTIVE; + /* + * Some SNP-only features such as BTB Isolation are + * available on all systems that support SNP. + */ + sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SNP_ACTIVE | + SVM_SEV_FEAT_BTB_ISOLATION; =20 if (tsc_khz && cpu_feature_enabled(X86_FEATURE_SNP_SECURE_TSC)) sev_supported_vmsa_features |=3D SVM_SEV_FEAT_SECURE_TSC; diff --git a/tools/testing/selftests/kvm/x86/sev_init2_tests.c b/tools/test= ing/selftests/kvm/x86/sev_init2_tests.c index ff4322a940c6..cf21bfffacb6 100644 --- a/tools/testing/selftests/kvm/x86/sev_init2_tests.c +++ b/tools/testing/selftests/kvm/x86/sev_init2_tests.c @@ -15,11 +15,13 @@ =20 #define SVM_SEV_FEAT_SNP_ACTIVE BIT_ULL(0) #define SVM_SEV_FEAT_DEBUG_SWAP BIT_ULL(5) +#define SVM_SEV_FEAT_BTB_ISOLATION BIT_ULL(7) #define SVM_SEV_FEAT_SECURE_TSC BIT_ULL(9) #define SVM_SEV_FEAT_IBPB_ON_ENTRY BIT_ULL(21) =20 /* Features valid only for SNP guests, rejected for SEV-ES and below. */ #define SNP_ONLY_FEATURES (SVM_SEV_FEAT_SNP_ACTIVE | \ + SVM_SEV_FEAT_BTB_ISOLATION | \ SVM_SEV_FEAT_SECURE_TSC | \ SVM_SEV_FEAT_IBPB_ON_ENTRY) =20 --=20 2.43.0