From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2086.outbound.protection.outlook.com [40.107.220.86]) (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 868312309A8 for ; Mon, 10 Mar 2025 16:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624841; cv=fail; b=IIcoed00miZlO6ePlJc6S/zSsZNqCaW+C8Oh5FPlAMoqRNb850KM+KOJxHpGKlpBYZkkS70sDFkhVdRdfFhdBFIuCvmR5coMO2LKK8OQvU8uLwnVmchATaLZRIpuGX2F/00ZpxWqhexpVrXoMyJ4+t7UNTZUaadr9+/V6ecq/mU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624841; c=relaxed/simple; bh=L1u2MJRGqXUj4fJEoeyc95KP3e1ivS3Z8ABOW950Q2w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=axwGkMnfoH8WNaTHnHVvP3gavcwX7D/preApSZs4A4F+TwXmWEgDVX8h7xvUVKTlyr8LdA/DQseZOPiZJyiP5tD654zBKouMORMBGbSY/ZGDDvvfP3MmtYQZZEbXpIvMWkLmOlFJK858cyiOKwmKAI7nX4ZE44V4QhvAuItHlhc= 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=N+8SxiC+; arc=fail smtp.client-ip=40.107.220.86 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="N+8SxiC+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bmtWzly0GSAmG+AaibRrJA4cX81JrpJCcDuPwxk3THzgtzfPzG+Q3vg7Rh1gvaoaDVHVmlFjzeFqiq3ZPAY0DdrJ0UKRQVKsm4br0zHjBYntoActTpG6Sv8ZzrXxN6TurVZDY9JpWFi3HTXrQ1Lr8HG4An3Miq8OJzCTrM9keNeBeyeKSm0hRo78mzHlUlTvoVWnbWrUN1rhF5bECNW2R4W3+n8y31tpKs+BUAytqhWGuav2GGXmh8j2XUvrrTtP8wxeqthh+/iZ2KbD9T6LArD6WV/1VU15NJSGVo6wuA9UkF3+W1E6xiJksXNE2IVmdiqOp+XuQ5evhS/BAcPulQ== 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=/1vpDB791O6bK6bWgOo2SONuoiJZfuv6YBsDLc66UyU=; b=Ee/cwzFu9Ola+Lk2NgnQgWlkRGaAMuiqra5tvW/NurqqWo9P7QKWnmR5m8XzG8s+DLA5ZS8LQ8ZibssjEYWgyc708hZ1gJUn4OLzD1eMuQCVA8qrPz5l/m/9crlOX2VLIDy7AFj00W/CHd+VNWbXlc+cijVJQr6k/sAw9PszyIIKoaZ3bRLu/TqpjVFJD3IQtPU05mF7au2coiB3eGXPRIuTwHuI/LXAIw1npul/YUhD1CZbXh98Vc/Lm11S/KT4DR1VDywEK2KmIELzmacGuJYoBbXYl3J8lytQgy4FHRQumfDUBFuRTZEvCGMGVhZkTF8p1wj2wjoRSNm1qQUQHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=/1vpDB791O6bK6bWgOo2SONuoiJZfuv6YBsDLc66UyU=; b=N+8SxiC+rtrFYPvKM72NJrul5u/kIg+iuC/zMCYioAKDmcp0R9dyL3mTvOFrMXOe/VCa0tuLTkAfmjDIsSHRFGXvaDflTDXXpXhVhksQhqqAkcBBzaLdIzT4eyxg3Tp1qBa6hgRulJd88f+OHH66FWNdWQaGiT0mTCFA+uoj9kc= Received: from BL1PR13CA0063.namprd13.prod.outlook.com (2603:10b6:208:2b8::8) by IA1PR12MB8357.namprd12.prod.outlook.com (2603:10b6:208:3ff::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:34 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:2b8:cafe::37) by BL1PR13CA0063.outlook.office365.com (2603:10b6:208:2b8::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.18 via Frontend Transport; Mon, 10 Mar 2025 16:40:34 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:34 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:33 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 01/36] x86/bugs: Restructure mds mitigation Date: Mon, 10 Mar 2025 11:39:48 -0500 Message-ID: <20250310164023.779191-2-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|IA1PR12MB8357:EE_ X-MS-Office365-Filtering-Correlation-Id: 2adae8ff-1017-4fd9-2597-08dd5ff247c9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oCMt4pGzfAYxn3AH+4+0QAbe2JuWEjzC0BQWj7/qjgsYrGhAV3yyXRi1PLop?= =?us-ascii?Q?Zbe4Y02rmE4cIkzX5fxdM9qyUG7bYRJeKxSADOOPvVjHTYlLge/9PygpgXin?= =?us-ascii?Q?N7S6h8XEp/aTzbSd+GCnv+YVBz7g3JzSK+C9RbVDMA5ixjEdWEJixBxoL7FK?= =?us-ascii?Q?Z4txeueEc/BoTEdJNty3PYmW97BCXUcQXbNxJ14accvXIF+RKjAS4JkxQJ9R?= =?us-ascii?Q?73Kn0K/DpcjLtPFgiwmL+fZp5Xxzdc9Fc3T4tRUF6m3R0Q8B8fAUwJwaQ21J?= =?us-ascii?Q?DFEyK2g88xVTz4XJ+y2VAVZBdu9N+WWFCwixOqLEa89PVMmbjz76jPsKtuLr?= =?us-ascii?Q?ZYupB8FYusn3bKd90BQ6/RnOkMRgkYB82IW9JfIOPK3iUJysm1gfbhBDkqMG?= =?us-ascii?Q?/RdroTBA35cR5ctfA2ayeE8C9QHyYj9BnN0RyBH8d5WbEIm3puO0Gb6z0JEH?= =?us-ascii?Q?FkonlrkJm180amvOcLu6HbkPQ76Uva5/YBQS+2DnkmjTlnxILU3htcEu0kMa?= =?us-ascii?Q?KZpibGiMI7vQUE79Q6STnDDN03ROJ0CnP0+7H8sjaV81XEOJupkloqazOGNZ?= =?us-ascii?Q?A+PAHrVE7bg0rSSw9J7Svxqs4HJmVNQ7320s8MNJULymRPeeM4TmWIOF45gI?= =?us-ascii?Q?hKIXjqSSLdEOaI2HgtsHC/Ua3w+IYU0eP7z27KDb9z8IXFEBkuM2S+zuVozk?= =?us-ascii?Q?L9cFqvAF1nrGS74czWsc5ETX7Z/9GaPIg9fpypZwttX2nZE0fOvO0WnNvKHQ?= =?us-ascii?Q?nhzKKb3kQRmi1/QZOvvzPW6BOClevPAOqJCp1ETFu0jGyM/FLfdsYQjXuXZ3?= =?us-ascii?Q?a/7ZLRmMUspsDY0H4gROa89VR+Vc5oV2OtW/TJIzwrxYxY0IDzr7Oar1xoW/?= =?us-ascii?Q?taIVXvflPDAi2kYCstO6hJOBQEv0eVRGhsGKgPhL/C82h5lxzRPy1Nl7aHNj?= =?us-ascii?Q?gZf59uatYvZ6suMpgWNA1O3cnBwuLKy2oM4anVRftioEaxGYcL3sOZhOTWoi?= =?us-ascii?Q?hKJrBQbIRfhdBB3nmIeSkPTOAvx/pNOzBByrlwrJRjPciBh1T+g2BijFG5tr?= =?us-ascii?Q?NgN+47u3XEwwVFRVkqzEjrzMWG1heAtw61uMx9lNTr/jAYo3Q92RHSOoEdOt?= =?us-ascii?Q?NkGGi4Qnus5V0pjvxc2eRp6spbJQdf3PWDpMw7yGVNoII1N/8MON2poVvpbN?= =?us-ascii?Q?9H4mgGgux/JLHreETHEgbT1AYZDKIzXhuq6gLm/xUJHiQoYAIQgmzt6hUTTE?= =?us-ascii?Q?hY0M2RR9ZOlO/MLbmWQt14HRNT16dd1PK+joXrSxpmWczH/WUdpVkPAe9zl4?= =?us-ascii?Q?87gOoCTSxuiEzM+oDISil94hNtH9tJw9zmSFF6X679nLLZR/+DNGy9drNU4b?= =?us-ascii?Q?QbiJLhID8pHCIxAOWzEGm8WSprF7WWws6VIDv9Oa8GcDuRni8c11ZLFdNbT/?= =?us-ascii?Q?hHMFWQilmLOTLjSSfe4J6n7kiQgtVyD8wxKXRLaDdA6XeyTT4q1MyoZ83bUP?= =?us-ascii?Q?t2/dyLQ57B77yXg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:34.7098 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2adae8ff-1017-4fd9-2597-08dd5ff247c9 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8357 Content-Type: text/plain; charset="utf-8" Restructure mds mitigation selection to use select/update/apply functions to create consistent vulnerability handling. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 55 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4386aa6c69e1..71da57c4f83b 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -34,6 +34,25 @@ =20 #include "cpu.h" =20 +/* + * Speculation Vulnerability Handling + * + * Each vulnerability is handled with the following functions: + * _select_mitigation() -- Selects a mitigation to use. This shou= ld + * take into account all relevant command line + * options. + * _update_mitigation() -- This is called after all vulnerabilitie= s have + * selected a mitigation, in case the selection + * may want to change based on other choices + * made. This function is optional. + * _apply_mitigation() -- Enable the selected mitigation. + * + * The compile-time mitigation in all cases should be AUTO. An explicit + * command-line option can override AUTO. If no such option is + * provided, _select_mitigation() will override AUTO to the best + * mitigation option. + */ + static void __init spectre_v1_select_mitigation(void); static void __init spectre_v2_select_mitigation(void); static void __init retbleed_select_mitigation(void); @@ -41,6 +60,8 @@ static void __init spectre_v2_user_select_mitigation(void= ); static void __init ssb_select_mitigation(void); static void __init l1tf_select_mitigation(void); static void __init mds_select_mitigation(void); +static void __init mds_update_mitigation(void); +static void __init mds_apply_mitigation(void); static void __init md_clear_update_mitigation(void); static void __init md_clear_select_mitigation(void); static void __init taa_select_mitigation(void); @@ -169,6 +190,7 @@ void __init cpu_select_mitigations(void) spectre_v2_user_select_mitigation(); ssb_select_mitigation(); l1tf_select_mitigation(); + mds_select_mitigation(); md_clear_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); @@ -179,6 +201,14 @@ void __init cpu_select_mitigations(void) */ srso_select_mitigation(); gds_select_mitigation(); + + /* + * After mitigations are selected, some may need to update their + * choices. + */ + mds_update_mitigation(); + + mds_apply_mitigation(); } =20 /* @@ -281,6 +311,9 @@ enum rfds_mitigations { static enum rfds_mitigations rfds_mitigation __ro_after_init =3D IS_ENABLED(CONFIG_MITIGATION_RFDS) ? RFDS_MITIGATION_AUTO : RFDS_MITIGATI= ON_OFF; =20 +/* Set if any of MDS/TAA/MMIO/RFDS are going to enable VERW. */ +static bool verw_mitigation_selected __ro_after_init; + static void __init mds_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MDS) || cpu_mitigations_off()) { @@ -291,12 +324,31 @@ static void __init mds_select_mitigation(void) if (mds_mitigation =3D=3D MDS_MITIGATION_AUTO) mds_mitigation =3D MDS_MITIGATION_FULL; =20 + verw_mitigation_selected =3D true; +} + +static void __init mds_update_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_MDS) || cpu_mitigations_off()) + return; + + /* If TAA, MMIO, or RFDS are being mitigated, MDS gets mitigated too. */ + if (verw_mitigation_selected) + mds_mitigation =3D MDS_MITIGATION_FULL; + if (mds_mitigation =3D=3D MDS_MITIGATION_FULL) { if (!boot_cpu_has(X86_FEATURE_MD_CLEAR)) mds_mitigation =3D MDS_MITIGATION_VMWERV; + } =20 - setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + pr_info("%s\n", mds_strings[mds_mitigation]); +} =20 +static void __init mds_apply_mitigation(void) +{ + if (mds_mitigation =3D=3D MDS_MITIGATION_FULL || + mds_mitigation =3D=3D MDS_MITIGATION_VMWERV) { + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); if (!boot_cpu_has(X86_BUG_MSBDS_ONLY) && (mds_nosmt || cpu_mitigations_auto_nosmt())) cpu_smt_disable(false); @@ -599,7 +651,6 @@ static void __init md_clear_update_mitigation(void) =20 static void __init md_clear_select_mitigation(void) { - mds_select_mitigation(); taa_select_mitigation(); mmio_select_mitigation(); rfds_select_mitigation(); --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2083.outbound.protection.outlook.com [40.107.92.83]) (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 7F76C230BDD for ; Mon, 10 Mar 2025 16:40:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.83 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624844; cv=fail; b=QUzgMNouAJ/LTviTXk7gtBkh1jnPiyLO5yC8WTXxf6vbmuwYPhckbzFOrcFbkg2P4wHgRRhGiMxOeu7jWoL+CCfPMIGlhesZRBZM7OHQqF6ArAZV9nDgn9Lzw1Rc1yZ/aDros3HQOnc7rAWOsxnwxcaH0/fBfqHZrl1EiJchjYQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624844; c=relaxed/simple; bh=Sqaw8UFpYUMzx781NGBzRKHNs1p+8elV4TxLZBGBk4o=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Y7rmEy5BoDiDGShIFTvXuqR1lNX8h4Z+ZaaG4d6Z/Ghg6pzEAsQNp70e4+kXoKMfSRyoQwkSEn61hqugYbfy0SWL50LHcoEn/CRZU4XocutaE3n8zEgxrGfUpPDfDhQDxo2gf+xWxcnLgnON1nyL+kDmd7BfhHxsxLdzlyaW8HI= 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=ME7eGwKh; arc=fail smtp.client-ip=40.107.92.83 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="ME7eGwKh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TH+MG59hwWE2fkmIabc/xENatC25VGbNYgwvBATMAmza1s7oVcUTtTDopPwxoziLPC9zSoUwvu/LM8gWiwLPtKvyY6dciR/uhguxuGvXukJkN/ejlkE7rEbS5EHrxk/19bqdlKWbH5l7HmwNVMjSl5MW62+kEjoqxPxY9XdsuU6jemfWaSH/fw04X45+1OsRajkEip/Hje2NAQjcn4KBl4hZEPEAYX5LjA8L3Ge106kGnMDSclRjkLhlSS6ERIDcSBEYaG/p53nBXNRttysJjZUO6njlvvJ88TRhy53VdZhBrkObmc8u2Iy0QJPds7MoRohwLk4lVJwm5ZN+fD37OQ== 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=n8fEux3wP8a/V8mnio4UuQkemrlpdH65baMbpZPzPtw=; b=g7glQqvrsVNRfY6J7oyXGabUJcMxEEuK5I8aEpn9wdSKcN2FYJsCfRjEnZrwZz9C13vSeCbkjrzIxTI3OCex9jlcWR3CrKu3iro8F63lB2KDU5dguqGShzV7Js2IvAhX51yrnL7fgCteXk/IaSUlcfcyE4JWyvkgCu1y6OtoEOrQ1p/8vqEOyfO2kzaaiD9qV+5LE47ildBz5zfxHv+p2L97e5YMN9ZfghZdxBNEAP/wKhsIofbX/TSfr37Bpt6M+PRmJMX4h6fAoiPDP3aQCxh/j9HD75kGnPKak3uzgqyLsux6eHJ47sExFN6k3b1HSWfCPqSj5gGpeVtlhHLyTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=n8fEux3wP8a/V8mnio4UuQkemrlpdH65baMbpZPzPtw=; b=ME7eGwKhhizqNtQ20U4PodV1dhU3GN7LU6Vp1twvoxiyX0JJwQpwitdtn1P91AjgiQfyMT+eweCx71tXkg09M0sUjHLIQQTKYVtGLdh/Oc0/ZexPfXz39OULMZn693vvnJSKZTrx2D5m2yb74OXIB6qEF8Ub946Sz0rnflrlF4E= Received: from BN1PR12CA0009.namprd12.prod.outlook.com (2603:10b6:408:e1::14) by LV2PR12MB5728.namprd12.prod.outlook.com (2603:10b6:408:17c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.22; Mon, 10 Mar 2025 16:40:36 +0000 Received: from BL6PEPF00022570.namprd02.prod.outlook.com (2603:10b6:408:e1:cafe::87) by BN1PR12CA0009.outlook.office365.com (2603:10b6:408:e1::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:36 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:35 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:34 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 02/36] x86/bugs: Restructure taa mitigation Date: Mon, 10 Mar 2025 11:39:49 -0500 Message-ID: <20250310164023.779191-3-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|LV2PR12MB5728:EE_ X-MS-Office365-Filtering-Correlation-Id: 15f168a5-83fc-44a1-ecfe-08dd5ff2486d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BMr5UE+iAGSmpg8Q9yiGVQ257Kav9+iXlrTzH06ms+EGtlAot0TbcwkPOYb4?= =?us-ascii?Q?CzXmEZ7W2lQW4s+qEalARfAVtbwbFrw9XgKBq2bkFfaHuYq+Qqt1Bm69pyPd?= =?us-ascii?Q?RyrndVblCGymTEwkh53ippLKtmeqQKn1GrnPRCvrORr75mSIv66cmyLp5Bpk?= =?us-ascii?Q?kKybOLelN94fUagSNSzo/3qVCDdvbedBFozD5+WkkrQZN5jer4oy7I9paQ+h?= =?us-ascii?Q?BXJ7PnGksXJ3+ovjOJxs8XycamfgM/bf0d9s7iKJPNE1CcT+zeN5ifLPtV/W?= =?us-ascii?Q?gqJ2I8TTnhnejnq4SSodpSt6XX0f6oSHF00LryNeP8C5O1vE14wIjrMkBBvG?= =?us-ascii?Q?Rq6u8Jo4A4Je4vDRsN1gp9ptWGn2f+NZ+9jDEKi7WHea2nhkdxB2DgCKZPI9?= =?us-ascii?Q?w0uodv/jrMCla4fBQwv7V5J3qichJWZz8QEhlHIhtAkUM4rpfNLvAC5L8KP9?= =?us-ascii?Q?iwNuQBHvNR42j6uIrKFPuXxqmkSofK2xWvyqzLrIFvZjAvFSY7AZw+cr01Io?= =?us-ascii?Q?SrTMqh8mFGp/Ze3cYNWrt828neW273kaW9yfSPxkFy2Ad61oochew67a+n0z?= =?us-ascii?Q?Xbt0A2jyzR4OuCRvHx2IcVSRB/AIdZmqkEbgyWHPAOTY/gdcRFiOjsGkMETu?= =?us-ascii?Q?8ynWkVT/40u1rPLiLAFTYlYRLOBvIpsstAY1s0ixxH83Bm4csu1/yYh/PD1R?= =?us-ascii?Q?XJJDC+sEua18DXUq8ypJaJET5JGmna1b3OUZpK+DEYtd/3Tc9H8rkNQ4Ga5G?= =?us-ascii?Q?It1e+kiEammT6ItWkdY4QFFfOCFmnuzPg1fYDe0wEMO+1M6j7wO3bGiqxVS/?= =?us-ascii?Q?EcLMCumVt4CkK5PCEqcSehhZHTny6O/SuMISuCihJFxBim17a6HUAQP9Lp46?= =?us-ascii?Q?LCaiB8OF4GjfSNS6dDPF3AEPGi7xVRh5euVfnSubT3eFKsn+BCMrmhSJqygD?= =?us-ascii?Q?3pShUDt5UcD0Zc1Pke4NAnMK4+SarLMCo8hazOMZHopbS/eQIBjp5TQMgG6W?= =?us-ascii?Q?kIA4AMFwbNxd87LGYrZDNUyeO4ha/4YRUZ/sVFm28HLEoAXZdPtfddwJ4ugz?= =?us-ascii?Q?PrjAv4yAR1uRpVI/IuVOBLrda5XzxYIgUjVkq+R/z27kqg35QH+GrYIeeery?= =?us-ascii?Q?+NXUYSAxFsJPuZueU12/zksExhwhHhq3C1E4tIlomIqQIJXQtv7pq5u9g20X?= =?us-ascii?Q?XtpsJzmaGeEiB04I8Mcsm8wIZVlgstsguMhur4YAhyezxrWIMAJrAmoHqWFN?= =?us-ascii?Q?nBblGRB6D7nKjVqWLo4tjhxqIWlcDzekNXFeGw+RFBoo6Qe7TQ4U6BTdTQCN?= =?us-ascii?Q?YdQk8y80d2MSemC9MZ0wTPaWNUaAAoLPh6iO893oep9qRsCY1JOnKDGpYbAV?= =?us-ascii?Q?G30h/4bKqMsuoZsNtF6EKAT8LXzUnS8aRwUBTDV4KGrwSLDCH9e9W+aFPag7?= =?us-ascii?Q?3YQfZ2/EHtwE2FAU1lXO6FS8N6o8HiYqrk24jEe6KL1jQ26CieQg018nmFpY?= =?us-ascii?Q?lOeLZ4R0eyyW9pI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:35.8053 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15f168a5-83fc-44a1-ecfe-08dd5ff2486d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022570.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5728 Content-Type: text/plain; charset="utf-8" Restructure taa mitigation to use select/update/apply functions to create consistent vulnerability handling. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 94 ++++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 35 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 71da57c4f83b..2fd58b7089c4 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -65,6 +65,8 @@ static void __init mds_apply_mitigation(void); static void __init md_clear_update_mitigation(void); static void __init md_clear_select_mitigation(void); static void __init taa_select_mitigation(void); +static void __init taa_update_mitigation(void); +static void __init taa_apply_mitigation(void); static void __init mmio_select_mitigation(void); static void __init srbds_select_mitigation(void); static void __init l1d_flush_select_mitigation(void); @@ -191,6 +193,7 @@ void __init cpu_select_mitigations(void) ssb_select_mitigation(); l1tf_select_mitigation(); mds_select_mitigation(); + taa_select_mitigation(); md_clear_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); @@ -207,8 +210,10 @@ void __init cpu_select_mitigations(void) * choices. */ mds_update_mitigation(); + taa_update_mitigation(); =20 mds_apply_mitigation(); + taa_apply_mitigation(); } =20 /* @@ -388,6 +393,11 @@ static const char * const taa_strings[] =3D { [TAA_MITIGATION_TSX_DISABLED] =3D "Mitigation: TSX disabled", }; =20 +static bool __init taa_vulnerable(void) +{ + return boot_cpu_has_bug(X86_BUG_TAA) && boot_cpu_has(X86_FEATURE_RTM); +} + static void __init taa_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_TAA)) { @@ -401,48 +411,63 @@ static void __init taa_select_mitigation(void) return; } =20 - if (cpu_mitigations_off()) { + if (cpu_mitigations_off()) taa_mitigation =3D TAA_MITIGATION_OFF; - return; - } =20 - /* - * TAA mitigation via VERW is turned off if both - * tsx_async_abort=3Doff and mds=3Doff are specified. - */ - if (taa_mitigation =3D=3D TAA_MITIGATION_OFF && - mds_mitigation =3D=3D MDS_MITIGATION_OFF) + /* Microcode will be checked in taa_update_mitigation(). */ + if (taa_mitigation =3D=3D TAA_MITIGATION_AUTO) + taa_mitigation =3D TAA_MITIGATION_VERW; + + if (taa_mitigation !=3D TAA_MITIGATION_OFF) + verw_mitigation_selected =3D true; +} + +static void __init taa_update_mitigation(void) +{ + if (!taa_vulnerable() || cpu_mitigations_off()) return; =20 - if (boot_cpu_has(X86_FEATURE_MD_CLEAR)) + if (verw_mitigation_selected) taa_mitigation =3D TAA_MITIGATION_VERW; - else - taa_mitigation =3D TAA_MITIGATION_UCODE_NEEDED; =20 - /* - * VERW doesn't clear the CPU buffers when MD_CLEAR=3D1 and MDS_NO=3D1. - * A microcode update fixes this behavior to clear CPU buffers. It also - * adds support for MSR_IA32_TSX_CTRL which is enumerated by the - * ARCH_CAP_TSX_CTRL_MSR bit. - * - * On MDS_NO=3D1 CPUs if ARCH_CAP_TSX_CTRL_MSR is not set, microcode - * update is required. - */ - if ( (x86_arch_cap_msr & ARCH_CAP_MDS_NO) && - !(x86_arch_cap_msr & ARCH_CAP_TSX_CTRL_MSR)) - taa_mitigation =3D TAA_MITIGATION_UCODE_NEEDED; + if (taa_mitigation =3D=3D TAA_MITIGATION_VERW) { + /* Check if the requisite ucode is available. */ + if (!boot_cpu_has(X86_FEATURE_MD_CLEAR)) + taa_mitigation =3D TAA_MITIGATION_UCODE_NEEDED; =20 - /* - * TSX is enabled, select alternate mitigation for TAA which is - * the same as MDS. Enable MDS static branch to clear CPU buffers. - * - * For guests that can't determine whether the correct microcode is - * present on host, enable the mitigation for UCODE_NEEDED as well. - */ - setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + /* + * VERW doesn't clear the CPU buffers when MD_CLEAR=3D1 and MDS_NO=3D1. + * A microcode update fixes this behavior to clear CPU buffers. It also + * adds support for MSR_IA32_TSX_CTRL which is enumerated by the + * ARCH_CAP_TSX_CTRL_MSR bit. + * + * On MDS_NO=3D1 CPUs if ARCH_CAP_TSX_CTRL_MSR is not set, microcode + * update is required. + */ + if ((x86_arch_cap_msr & ARCH_CAP_MDS_NO) && + !(x86_arch_cap_msr & ARCH_CAP_TSX_CTRL_MSR)) + taa_mitigation =3D TAA_MITIGATION_UCODE_NEEDED; + } =20 - if (taa_nosmt || cpu_mitigations_auto_nosmt()) - cpu_smt_disable(false); + pr_info("%s\n", taa_strings[taa_mitigation]); +} + +static void __init taa_apply_mitigation(void) +{ + if (taa_mitigation =3D=3D TAA_MITIGATION_VERW || + taa_mitigation =3D=3D TAA_MITIGATION_UCODE_NEEDED) { + /* + * TSX is enabled, select alternate mitigation for TAA which is + * the same as MDS. Enable MDS static branch to clear CPU buffers. + * + * For guests that can't determine whether the correct microcode is + * present on host, enable the mitigation for UCODE_NEEDED as well. + */ + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + + if (taa_nosmt || cpu_mitigations_auto_nosmt()) + cpu_smt_disable(false); + } } =20 static int __init tsx_async_abort_parse_cmdline(char *str) @@ -651,7 +676,6 @@ static void __init md_clear_update_mitigation(void) =20 static void __init md_clear_select_mitigation(void) { - taa_select_mitigation(); mmio_select_mitigation(); rfds_select_mitigation(); =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2044.outbound.protection.outlook.com [40.107.96.44]) (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 6E4B8230BE8 for ; Mon, 10 Mar 2025 16:40:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624846; cv=fail; b=O1vRtWe0PyM4wARIELxgWCv1v5K6jsOb92cxFXDe3qcOJ6XoHtPTHu4V7469mp5/kZFczy3hzc8qWilNzp20lhwZLsIHVUZQe+erLFXk2uRO4hN2hXsVwdNM8B7TeIK58w2QzBCcdAtEFNEe7sZ4I34+EP65V/wYLzMkrRvg0gY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624846; c=relaxed/simple; bh=K/R5ohaNXdkPjkThBQqNxs00pqn2hDeU3pNVwFBBiuc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gLt34jEF6siZe28QGSNYGrR0yZuzNbHrdgdhYnEmXDUAH6yUhfmnJYDdtJJVyO/Lo08hF+yllvKxiIum5nG6vmcB+qG6KQVEK83Y/KzGG3+QZXL8W1amRrDhmDlgqFoWo7bdV6EsZXuQSPwL0xRKs6RTL46wnnP+UKmms5rcktE= 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=3mmJ84BM; arc=fail smtp.client-ip=40.107.96.44 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="3mmJ84BM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uxDBf24LlwacncFCF7hpkwwHPIxocweNXwaEOmew+UWRgvyG15+1FMqJiiH78ZJ+OwtVe6G/y2kg46uLBswf6ljDpbK/B9l0iBK5EaOhDqeQIUUPCTTeKcjB509i0RV88mP/T5UNMEABM7s86LmhPiZivWdNjdySXSwHSfLUg6Mx7mqm8i3wBUzFvRLwXLjjgx7P7V6TliESFfaFudKXd2j5g8U69ef0v4LvAI/nb2PTZYPIm8jgneyilEIRXsSSaGvd60bam1Boy5Z7Ba+K1V6SL8mdYyZkDPQNIbCMm1Nuvdtbe46TwmFhat4DgXSt4BHy3XEQ0wNtReW0nKKo6A== 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=NPX4iPMWpZ9tQxdI80+NhpCjEl385hHaPLRR/UxDHwE=; b=SAm/5cwsjoDwa2CIgWu9+OlBVHq1OqtdIO2nAshLaib/TtVy09lBYXcVF5nO7DghpB3URptvLXBYobT2KKLd6JygGbbwqryBXpcZgLQvlsV+tXFvKCbiQlS5qjA2TYxRkuBSQOs6Vyettc6bTAdqmnlwQ/zd6SEde2DbciEZmQKcIOyQkro/pj1WgsIuCcAa05B71lqWPZBnrbk8Xvfl9rBk4oI+1PZstTinXFsTcW2aVBySTo2MiO/KrPWfJtNyexaApBDrlk+ZHVIYBkqtquxXqP2iNVV2UcejAP6ffWC/6sB+ZWVg83dlSsMzczvH6oHPyYy0wX/3kN75nzLCXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=NPX4iPMWpZ9tQxdI80+NhpCjEl385hHaPLRR/UxDHwE=; b=3mmJ84BMVb9sS/9pc4bt8DOgqQcwKZni/Y0Eh+3hCI7eCA0a61BNKkxBlarm6KLUgeQgu6NsFku1I5x1oFQA3SukcbBfSblxQnBqlSibrbSl34JXDjhzKt2mRF6YtLeTpLBzUMzskCCpsTT+jIR3uVHfEw+d8txpNkr1l+NWD70= Received: from MN2PR16CA0052.namprd16.prod.outlook.com (2603:10b6:208:234::21) by IA1PR12MB7566.namprd12.prod.outlook.com (2603:10b6:208:42e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:37 +0000 Received: from BL6PEPF00022571.namprd02.prod.outlook.com (2603:10b6:208:234:cafe::f2) by MN2PR16CA0052.outlook.office365.com (2603:10b6:208:234::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:37 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022571.mail.protection.outlook.com (10.167.249.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:36 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:35 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 03/36] x86/bugs: Restructure mmio mitigation Date: Mon, 10 Mar 2025 11:39:50 -0500 Message-ID: <20250310164023.779191-4-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022571:EE_|IA1PR12MB7566:EE_ X-MS-Office365-Filtering-Correlation-Id: 82f051e2-a205-4efe-be42-08dd5ff24918 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|7416014|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GRiedIzagcCRkMb64+wnKKJSvhvxAN4NuUpCT1zdKOknK1agr0oHaNwLA104?= =?us-ascii?Q?OZi0a2jemI0TfRYGbzzE9lP5VJ82JfOyKt4MropIgtYfvmgUmFHCQfr0Ct/q?= =?us-ascii?Q?soZBup9Ru26I2kGXp4Mz0rID2IyUIgntzE/jp9z98loQbDDe/Yb3A7TAHV8m?= =?us-ascii?Q?X7IwB6HuKKj0OYq6wwtDnEDAMn2yf4JpBDs896meqeG2g3RLSdvyGRdokeCK?= =?us-ascii?Q?qTI3XYgYrrCvT6wNaY/iZN9YYkgon0beotw2B6ViKqgY1UKYhqb7Gzid1qMq?= =?us-ascii?Q?GqwcjnM7EwpqGhiJ6H/Z/0aeYdKEXMdCUKAte3cK9LAYSRX0koi0z00J/YjB?= =?us-ascii?Q?mtXJ8sXKIGe4BulDTycUJpzhMAv9G5OFYbyy5e9Mt0ebY7d+0AwbTmOzoDn6?= =?us-ascii?Q?LJE3PJLOgRNVsCoS0m4gkHjKfjV9k9PfB3AJoxABRFIRUbM/wF9Eent2vZzU?= =?us-ascii?Q?zVk4TkqdiFlbNSqcebLDAMqM+5R6tEryKkru9/tskkAbC1EWMoPvhMOljiJG?= =?us-ascii?Q?EDYCkxny2kqIKtRh8LXnYXyND18/ym5PigpS/c/9wfghSk/pgvzvYq2IGdvW?= =?us-ascii?Q?2LGPXiBbqff4jNK0ZfiarWehq/0HNCq3fqxa4vzLSr+b6A74WCDC5oEWcuh0?= =?us-ascii?Q?t/Z9ueOJHCZ7zy+ME450wWrDHmHIGsJDvpPpa+YHOFLMSVwAe5doy9Q0AMKx?= =?us-ascii?Q?iPNDeUasW3NrBvwcj5lC7IDDe3iqIau02tcxqNBi73hgI+riZzKC6p0MVHyL?= =?us-ascii?Q?g05NSkyIDfi9OgD//yClnDzMX1yYW2XuxGktQHtQsyU1bdXEAmvtkudmfXRO?= =?us-ascii?Q?WtAOz0Pn3pjdfyRQ88vyhCernB7ZOjyOwKKXBO2nHpur+n7egZAT3NHIekUt?= =?us-ascii?Q?Ke7c8aWn1PXn8aa3Z5ZliTtxYGvkJKoFBCGEZrK050CVtkAYIGYNy+qUJeWD?= =?us-ascii?Q?UD5TcmiPfeYXykHHqRGxL+eiPHOBoatQoSydsAlBnu4L2NSyFxWPDhQJ7une?= =?us-ascii?Q?dtcqkEdZqa9AwZEj1JXDZ0v95kD0Jmm318pH8Jop5DC5QGYFluo7VX2kNVPt?= =?us-ascii?Q?v5ZFL8LZ7OTKwJPJmLiXqx+sGTCqciJVy6RC5SUk+EoX2QRQ9b3nDVfWq+zd?= =?us-ascii?Q?wSUkJU/nE20Gp+8b/pn2n7pRtEEd28YjzYx5i/XgSH78NSNF0FCZzoYsvRhR?= =?us-ascii?Q?RXoKVMNmBckT6SP3uaynSBVq4trEXCs4hyzYQYXg+IuykdMqlJ55BVN5s12M?= =?us-ascii?Q?hcCwq4G4lzDxyf4r2wvNaxHQGsfR8UEbOLrQME11XciCVMnGPx/I7GbeF32G?= =?us-ascii?Q?saUdNZsP61xXvBOzRBvpsqTECMUbsQg+y4oqpJynUrg6ghbsxU5JFryQDbec?= =?us-ascii?Q?AMHbHOMaE1u4c6zmSKljb8/ww902c3sGR8ArKhfk32hK7INFkxIm9Ep3kUdN?= =?us-ascii?Q?5KE86PYM8zcwm+Sj+bTfa9oTgCOe3p1TD1iHenPpoj02yjAaLcVp9Oyrk7JI?= =?us-ascii?Q?fBF95TiaBIyS7EM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(7416014)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:36.9092 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82f051e2-a205-4efe-be42-08dd5ff24918 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022571.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7566 Content-Type: text/plain; charset="utf-8" Restructure mmio mitigation to use select/update/apply functions to create consistent vulnerability handling. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 77 +++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 26 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 2fd58b7089c4..a727f7998bec 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -68,6 +68,8 @@ static void __init taa_select_mitigation(void); static void __init taa_update_mitigation(void); static void __init taa_apply_mitigation(void); static void __init mmio_select_mitigation(void); +static void __init mmio_update_mitigation(void); +static void __init mmio_apply_mitigation(void); static void __init srbds_select_mitigation(void); static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); @@ -194,6 +196,7 @@ void __init cpu_select_mitigations(void) l1tf_select_mitigation(); mds_select_mitigation(); taa_select_mitigation(); + mmio_select_mitigation(); md_clear_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); @@ -211,9 +214,11 @@ void __init cpu_select_mitigations(void) */ mds_update_mitigation(); taa_update_mitigation(); + mmio_update_mitigation(); =20 mds_apply_mitigation(); taa_apply_mitigation(); + mmio_apply_mitigation(); } =20 /* @@ -511,24 +516,60 @@ static void __init mmio_select_mitigation(void) return; } =20 - if (mmio_mitigation =3D=3D MMIO_MITIGATION_OFF) - return; + /* Microcode will be checked in mmio_update_mitigation(). */ + if (mmio_mitigation =3D=3D MMIO_MITIGATION_AUTO) + mmio_mitigation =3D MMIO_MITIGATION_VERW; =20 /* * Enable CPU buffer clear mitigation for host and VMM, if also affected - * by MDS or TAA. Otherwise, enable mitigation for VMM only. + * by MDS or TAA. */ - if (boot_cpu_has_bug(X86_BUG_MDS) || (boot_cpu_has_bug(X86_BUG_TAA) && - boot_cpu_has(X86_FEATURE_RTM))) - setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + if (boot_cpu_has_bug(X86_BUG_MDS) || taa_vulnerable()) + verw_mitigation_selected =3D true; +} + +static void __init mmio_update_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) || cpu_mitigations_off()) + return; + + if (verw_mitigation_selected) + mmio_mitigation =3D MMIO_MITIGATION_VERW; + + if (mmio_mitigation =3D=3D MMIO_MITIGATION_VERW) { + /* + * Check if the system has the right microcode. + * + * CPU Fill buffer clear mitigation is enumerated by either an explicit + * FB_CLEAR or by the presence of both MD_CLEAR and L1D_FLUSH on MDS + * affected systems. + */ + if (!((x86_arch_cap_msr & ARCH_CAP_FB_CLEAR) || + (boot_cpu_has(X86_FEATURE_MD_CLEAR) && + boot_cpu_has(X86_FEATURE_FLUSH_L1D) && + !(x86_arch_cap_msr & ARCH_CAP_MDS_NO)))) + mmio_mitigation =3D MMIO_MITIGATION_UCODE_NEEDED; + } + + if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) + pr_info("Unknown: No mitigations\n"); + else + pr_info("%s\n", mmio_strings[mmio_mitigation]); +} + +static void __init mmio_apply_mitigation(void) +{ + if (mmio_mitigation =3D=3D MMIO_MITIGATION_OFF) + return; =20 /* - * X86_FEATURE_CLEAR_CPU_BUF could be enabled by other VERW based - * mitigations, disable KVM-only mitigation in that case. + * Only enable the VMM mitigation if the CPU buffer clear mitigation is + * not being used. */ - if (boot_cpu_has(X86_FEATURE_CLEAR_CPU_BUF)) + if (verw_mitigation_selected) { + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); static_branch_disable(&mmio_stale_data_clear); - else + } else static_branch_enable(&mmio_stale_data_clear); =20 /* @@ -539,21 +580,6 @@ static void __init mmio_select_mitigation(void) if (!(x86_arch_cap_msr & ARCH_CAP_FBSDP_NO)) static_branch_enable(&mds_idle_clear); =20 - /* - * Check if the system has the right microcode. - * - * CPU Fill buffer clear mitigation is enumerated by either an explicit - * FB_CLEAR or by the presence of both MD_CLEAR and L1D_FLUSH on MDS - * affected systems. - */ - if ((x86_arch_cap_msr & ARCH_CAP_FB_CLEAR) || - (boot_cpu_has(X86_FEATURE_MD_CLEAR) && - boot_cpu_has(X86_FEATURE_FLUSH_L1D) && - !(x86_arch_cap_msr & ARCH_CAP_MDS_NO))) - mmio_mitigation =3D MMIO_MITIGATION_VERW; - else - mmio_mitigation =3D MMIO_MITIGATION_UCODE_NEEDED; - if (mmio_nosmt || cpu_mitigations_auto_nosmt()) cpu_smt_disable(false); } @@ -676,7 +702,6 @@ static void __init md_clear_update_mitigation(void) =20 static void __init md_clear_select_mitigation(void) { - mmio_select_mitigation(); rfds_select_mitigation(); =20 /* --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2049.outbound.protection.outlook.com [40.107.95.49]) (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 2B844230BFA for ; Mon, 10 Mar 2025 16:40:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624843; cv=fail; b=UWepbkgGEs0F6BMl9sGh32shE+FjoTqVYBtzu7lV6DmOvy4bx/4BYfVNlan8JFhgirmkmVRXtr1i4QgD8wpM3aGNnBBZhL3ObYofElDX8XB8lB3xCMldqvr1DmoBnqXZ85DBBqwvHHZWNxK81Ceqlxb4gnXWvvBYu1+AfkzEpXQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624843; c=relaxed/simple; bh=DF6MZbZJpXCPECopF9eNLvNxgjJUadmOofM1ZNLxQU8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qYTCqcj1ugVB31kWcQ9RB7RejGspw6ymxGGNZL3UwAUESMQpsrQDnahX+FkNUQIK9JNCFd8mHR4RyLGHnPz9c8GCocZVi5mgQuaaeRfdOL2oXoT1PdKJpdpzCEVw+its7prNLFxP5+Iz7gX+8vZ//D7uoGxDZb/Cud7d5MXyIoM= 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=j52C9zVU; arc=fail smtp.client-ip=40.107.95.49 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="j52C9zVU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fNrwr5Md0ueDFqgc33Vpnc7uAqllI0LWVkYqbWvG4k/g4lxxzSrzxdTwvle5yjebCOFkwXU6JgfYpGgySAxAdSK7/xy6DMI5yblyaXTeTv/dvEEOy9aqzV34WzOGadh/p/hZ67TCFiBvzEPHEeYUSrAgO66cPBezvMOoTRavmU+w/OLM+TCQgwCQBBMZMCZmvBnedBv/e/pnkx/hem7rEWJb1sFiKoZYO1TfcTIUChmN5+LeeXx8QmT9SMjg42b6GVSCGonX9F1WwNEosp8MTPHMWpsD1Ejy9HIISaHDHO6mOevaWHYEVXNYUJ6p7cr7Q0hFphTgT1qxGzhUrrd12A== 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=JV6/HIURgDQZVllu3rS46Vt4KguJ+iml0Cn2OfCIHEc=; b=TNEQ5nZgSPAXXOLfBvF+ejkE/ZjnoembPvu7gp6kMDBojz4Y19XZIEnJ81g1jG7RLPQPRQpreoDebguSqjWaqD2v1r70VAwqC7QbNx//7L93AL+ITf7gDTbIyiZkz6HspSYbQv/epdB/HbbjPrKEN0WIGnUt6plRkacvKzoSBSUko9XZy+IuQeMWitEw+sJ6CS9SrcIWH+mf30Wrp59WdiVSa43MGXhZJWwg0q2nuf1git5s9ReQtgSUFq8qpv1Xt7enxf3unaB0AgmN6u9eK9UTut7WAEI0K7g+yV92YWbmJqhFvTN/mjX0falAT++50U15GOTI0MgW3CMlmaMVjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=JV6/HIURgDQZVllu3rS46Vt4KguJ+iml0Cn2OfCIHEc=; b=j52C9zVUtGecMp/XxLd1zOcLP8p0FosYitJqZNweldD4DoAzGNZscwLyhFs/7F6s845/D7/PEIgLKNDOY+nfPTOVWfcUOdOvG5AT/ZpvI9rYmGSavE0+EdwcQdQwFHWBPVtSF/k0FnOHhh6KGY6DJJCfRBIqOHKaRNlYhHuhVzI= Received: from BN9PR03CA0085.namprd03.prod.outlook.com (2603:10b6:408:fc::30) by SA1PR12MB8642.namprd12.prod.outlook.com (2603:10b6:806:383::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:38 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::d2) by BN9PR03CA0085.outlook.office365.com (2603:10b6:408:fc::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:38 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:36 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 04/36] x86/bugs: Restructure rfds mitigation Date: Mon, 10 Mar 2025 11:39:51 -0500 Message-ID: <20250310164023.779191-5-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|SA1PR12MB8642:EE_ X-MS-Office365-Filtering-Correlation-Id: 325df83b-859d-4b7b-cfe4-08dd5ff249c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?L8+VWEj610gyjRIzogUThfSdZhv7p8ClXfPbMnSpB6U1cC74B/YDY+zCBIry?= =?us-ascii?Q?ocO5dvifOcoxum/KzrfuG0IwzanI/VyucP7CeXfJOSNlkMPqiRSrDBgUeLfM?= =?us-ascii?Q?7i9jvWv1OzLO3bpb1YBCukTxgbDIqqmwjceUYiKne9uWwW47DoRcpfQ1RGdM?= =?us-ascii?Q?wih/t6G0OxhQ+xgjHAY7ZbNgTIOiOHAEhSvaWnIxdJNPWpW7t3VLK0+pZDHi?= =?us-ascii?Q?F1UU1E+cEHQdlszqJI8rScE19TelgmRlM1ksqWB2UwHQ8NoYprIhejXu3z/K?= =?us-ascii?Q?c0CWZO2+oIYaBNovl5sBzql1ewcuykbqVR2LXsX6AVb/2K/3M37Kjc5/GYoD?= =?us-ascii?Q?Rn9nyuoYJtWIfvguvS4ZEFfobbbE8cNdsC1lTHpsXMPD9itr2Ca/og49gcFH?= =?us-ascii?Q?izLcTjJjCHPL1pPqug/QAluYguKJAGr4loDHo4zY6/GpqTxB9QSlZdzO8QA1?= =?us-ascii?Q?vDx0B2lPuBIF8E/1dbUf1xH/1B/bsddQuqYvkkuad0iAcOad+gx3aOERVVrm?= =?us-ascii?Q?lPxDhf4Qoy4O237AzxcyDiIvun0lQ4rbCn8NR3igdFGX15+5Tkb2JOCFLKzz?= =?us-ascii?Q?8aNoh4oEgUbr6muLCHKYZxAnSeh3XfK00m1M/KvydbarZw6604CzC4HuVfIW?= =?us-ascii?Q?HOVuVjSA/2imAvhcqsFdqg7CyGSAED/0fOb00y3VpRjNxPokHeFczkwHOKxl?= =?us-ascii?Q?FqnkC7HXj8TJxlhKpIAHeV2S8c4YCuuo1l55d8jWtj2w/86bHQBRNza1F3zL?= =?us-ascii?Q?5R9rjkqGF6A4QDgJZ4SEJNTVlsvvdFldk+AtIHTL0sp5qZO7t2++AYEYqJRe?= =?us-ascii?Q?IF3qUkiFTCBWktch7vpowX3DIG76ecUA4DzNW+xg0EhB2M7Jz+WLLwJOR/9z?= =?us-ascii?Q?MooMh0rvCgxkAcLG9i5JuGKKT24f7QBfp6Tptv0H9TNJJH/dmiai0lGawQSm?= =?us-ascii?Q?YmUZ5l1Gl4Ps4rcc9ASaJ362zoWObU8iYi0791+eUAxAmB3KnBhi4y2qRlwU?= =?us-ascii?Q?dxeCXvbJ4m9xQMu90oo/NCm+8yD4boTnoTiuH2p2zeeaNppR+hV4tTVsP9FR?= =?us-ascii?Q?/Q8YAf1G67rGKlm79yjM08/bs5a90UOUsIBg+OXk6fw9snTWXOaayD0K4Qcg?= =?us-ascii?Q?+qXqqSlWoAmjbjd1FX5rfQBZQRnzBfBz/KmbZPOUszlf20LKAZe/LJurWAzG?= =?us-ascii?Q?VN4CXQ4BTyJDNX7K1xd2Gur5v9aTY1h5JAWxtfT4FxpHXsGNqGKOSALKzODJ?= =?us-ascii?Q?MnJBE8mRiRSh9PzsmXBQIWnBJggByYOK8sj7/m+dorccc7a4t8UK7x23/KpX?= =?us-ascii?Q?8HjaHTbc3pbVkVBxOEoNA2Skt8q79zDzWPqHIBrKzo72ltCFZes/cdQT4Vro?= =?us-ascii?Q?oHvvE3d4x2siqeN9mZ/XEqcKiXt0PdKsC6KIrAsMoqMgfpc/47hA2KzjIb/7?= =?us-ascii?Q?DeL7UOmVA6GEvHb+4+90HirkSvIMBE4YiyY8aGs3Dd5VbOgaoguT080ri/S+?= =?us-ascii?Q?pOs15f4+0riZ/1Y=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:38.0172 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 325df83b-859d-4b7b-cfe4-08dd5ff249c1 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8642 Content-Type: text/plain; charset="utf-8" Restructure rfds mitigation to use select/update/apply functions to create consistent vulnerability handling. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 40 ++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index a727f7998bec..de431f2bb012 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -70,6 +70,9 @@ static void __init taa_apply_mitigation(void); static void __init mmio_select_mitigation(void); static void __init mmio_update_mitigation(void); static void __init mmio_apply_mitigation(void); +static void __init rfds_select_mitigation(void); +static void __init rfds_update_mitigation(void); +static void __init rfds_apply_mitigation(void); static void __init srbds_select_mitigation(void); static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); @@ -197,6 +200,7 @@ void __init cpu_select_mitigations(void) mds_select_mitigation(); taa_select_mitigation(); mmio_select_mitigation(); + rfds_select_mitigation(); md_clear_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); @@ -215,10 +219,12 @@ void __init cpu_select_mitigations(void) mds_update_mitigation(); taa_update_mitigation(); mmio_update_mitigation(); + rfds_update_mitigation(); =20 mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); + rfds_apply_mitigation(); } =20 /* @@ -614,22 +620,45 @@ static const char * const rfds_strings[] =3D { [RFDS_MITIGATION_UCODE_NEEDED] =3D "Vulnerable: No microcode", }; =20 +static bool __init rfds_has_ucode(void) +{ + return (x86_arch_cap_msr & ARCH_CAP_RFDS_CLEAR); +} + static void __init rfds_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_RFDS) || cpu_mitigations_off()) { rfds_mitigation =3D RFDS_MITIGATION_OFF; return; } - if (rfds_mitigation =3D=3D RFDS_MITIGATION_OFF) - return; =20 if (rfds_mitigation =3D=3D RFDS_MITIGATION_AUTO) rfds_mitigation =3D RFDS_MITIGATION_VERW; =20 - if (x86_arch_cap_msr & ARCH_CAP_RFDS_CLEAR) + if (rfds_has_ucode()) + verw_mitigation_selected =3D true; +} + +static void __init rfds_update_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_RFDS) || cpu_mitigations_off()) + return; + + if (verw_mitigation_selected) + rfds_mitigation =3D RFDS_MITIGATION_VERW; + + if (rfds_mitigation =3D=3D RFDS_MITIGATION_VERW) { + if (!rfds_has_ucode()) + rfds_mitigation =3D RFDS_MITIGATION_UCODE_NEEDED; + } + + pr_info("%s\n", rfds_strings[rfds_mitigation]); +} + +static void __init rfds_apply_mitigation(void) +{ + if (rfds_mitigation =3D=3D RFDS_MITIGATION_VERW) setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); - else - rfds_mitigation =3D RFDS_MITIGATION_UCODE_NEEDED; } =20 static __init int rfds_parse_cmdline(char *str) @@ -702,7 +731,6 @@ static void __init md_clear_update_mitigation(void) =20 static void __init md_clear_select_mitigation(void) { - rfds_select_mitigation(); =20 /* * As these mitigations are inter-related and rely on VERW instruction --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2080.outbound.protection.outlook.com [40.107.243.80]) (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 BF06023236A for ; Mon, 10 Mar 2025 16:40:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624846; cv=fail; b=qyjz6gY+3cOrH4tlnidpcpGriLjUnQcYaMKtahDxovaCHe/hryPFF0pE8YbYsBJisx/UO7T8JkHN2XY4R2gynvY82k84O/xPcZ9IUvl7BowYAypcVzR90eqqE4qCEAePX80gDZBjgA+Ske1pCC1oYZsn/6bsDBCHjJkcBHnt4qA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624846; c=relaxed/simple; bh=SFK9DT3dfBXWdWZ9ItVdvzTB/xtIHxvDCgoENgg8NWo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XAEplaiykGq4QohtySQk2gjYDhBgFGCpz9cewCQ//Hf35tY5r76omhR2XKo+wz8uECJaignzTAQPet+9HqKPWSp/KFTOKkrHC0MEqWDBdUh+v21eBkIBzHlDKvtu8nWfUA7H/U1A0lxM23GXldoLFzc0Sx55u/fzdmnY7xmfivk= 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=MQqUnOBH; arc=fail smtp.client-ip=40.107.243.80 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="MQqUnOBH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g+1SbBzZQfQrWLlEJ2vJjRztxw881oWvXCsZFuqvPr0iKTn+pFHIuraKOP6UM7UmS24B48gv/IqHzj/3WskyqqhFddxU8+z8N7X0k32GHl0Y0tQwn4xq6drRO95Os0oLkBwl/+TzQez7d72zNsFsJlSIB0i2bNIUbLOj//dPziBEOb5hqi57WfXsJdLjIVPeQlDR8S+LVPEtInlITrwfgq8z7QiLSbC/w3Sw0zcJNHluKyhpQmAZnJv223+wHd7xc94jeaNE+JlQR/E+Z9ldqjgwYkdF/USLyNYnSJsevGSL8xn0Ef4/z/yoBVSRW1J9g7Nub05FWcVeukHEouiHMw== 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=LsEsPN8nP9Y5YzXToN1rGG41ObZbHURZGHzKWGbHixE=; b=TFWrgOq+iVGFdDocRBsF3t+tp+4PIYG+xquIrHqnCG+j72U2iRx5cYRh9llL9Lw12MRo9/xnoZpaJU6co1VxoPqrOhyBuycB/WVJ9LpAKqbbY3wfKbnW3IwTKVGrGkunJiJtyd9DKWbbzhM2gej7XaKXgOuJWOVdua0EcPHc+wu/lnxNRhb+KW+emu3jdUS/VshnwvkmVVzqBZfgrvR/5BKL1tcncTMyvKMeiI0sKkjgLA41Pbljf1x+hlaH+M6G8s7/crdNFNS7gyHE4dUtpmOhvbZq27QPhK9qV7RNsujRtRFQWn44eAqNHy3CB3wkEAaRoYKknjDIu7kW19Dpqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=LsEsPN8nP9Y5YzXToN1rGG41ObZbHURZGHzKWGbHixE=; b=MQqUnOBHSohCqNPiPRrCB932gXhO8InjsjFSZPea48h2w2rr7VrK/kfjGVsH11sZIqN2W0lNobmamkcXfhYrwLs988lUfCWuhrkkGcIzFKMNfJPTr6tmxiB9wpK4x0bCszUvd0mnqgztkEu9uDlw5bipT8gSYJS7R80LUOhogXA= Received: from BN9PR03CA0732.namprd03.prod.outlook.com (2603:10b6:408:110::17) by DM4PR12MB6301.namprd12.prod.outlook.com (2603:10b6:8:a5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:39 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:110:cafe::dc) by BN9PR03CA0732.outlook.office365.com (2603:10b6:408:110::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:39 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:39 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:37 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 05/36] x86/bugs: Remove md_clear_*_mitigation() Date: Mon, 10 Mar 2025 11:39:52 -0500 Message-ID: <20250310164023.779191-6-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|DM4PR12MB6301:EE_ X-MS-Office365-Filtering-Correlation-Id: 624f4ae1-7969-42c4-dede-08dd5ff24a6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?APjWvkC+5MqygpdzIxRH+JoPNgHo3HzbhqNVjJXvESq51vRmeU7gIByeZ8hl?= =?us-ascii?Q?LwY+dIeNg/T4TArXUYzIN6X9SbwfdFCuqpB7f2NSEkWQVMCuo65+FkoABvBP?= =?us-ascii?Q?MezOkqdbAboW9XN7yJ/ikQt1ziPwOmx5tVNGOr+ENWBzBbhU0gp/ClFun86m?= =?us-ascii?Q?4pM/BDqDgysw1Pf6z9pYY8asGWqyLcOlA9nFS6mly+/dcWlh/osMjJRW6zl2?= =?us-ascii?Q?Lcrrxsb+8nztTnpE3NDomqvNl+bf3jspy8pMhpUiIBuRQ8QlzJYyrT/9RvSF?= =?us-ascii?Q?N1CQJ2id/3Z6x+LRLzQgb+M82Y6LIIE22s5WkVAE+aI3Zn6dYlObJNS0LK3g?= =?us-ascii?Q?xaBPwTaTs/QI0hMLSLvIDMNl+/Wjihdskz0mnjmfl6C69pIdpQA2+WxRwFQZ?= =?us-ascii?Q?x0SrCO160FyON0F1F5kpzg7EerbiUcUef8IkePhfBcnpHzzuz3LMmW+sJ0rd?= =?us-ascii?Q?g69+Su3g1FUTAYPyr1boqB5rtRU1CnHaAothYwADbjfydiAlpsqLhyyJtxIj?= =?us-ascii?Q?DI8KWuyf6AhoMMXsk7lEUB4KGRpbsOYe7KSpc70Y04I2ax1PkXnXtWUj/KZq?= =?us-ascii?Q?8DmNRaB2vHsFx2CqS+ppWOiAeaX2KDWRwTKjstbQtpWSY/92OGmaPOw7YHQI?= =?us-ascii?Q?MNtcvHVQXSmz8a0/kmvG9N/famF695nu6QsHpivXSBwgn6KfzpybnSvlqFjI?= =?us-ascii?Q?/ftb/DAY7LP7GiCxTYtX0M0kbT1vXJdNteSH1Ct+QUF99zYc0ggSJ3DSblkQ?= =?us-ascii?Q?sYlhiqDFPKmonFAolJqMpyhJRfK/pwzXPuPetV1yk/rSoSwX3yxqB1e1rqsJ?= =?us-ascii?Q?QeCYJJT++VQxpsBNlTiGyP9xfYZZJOAyMzf0RUBdhIsnRWJCZ0G57ectuV5X?= =?us-ascii?Q?oynmx6hVfXQjIAiLOoSCXRNBCDIJJ6YhrTghSU0LABpUTPp7yrZCl94f3kwJ?= =?us-ascii?Q?0I9NrTl6JNrjM535pp936Syf3TLPt8+6JR8vbTR9llAhMrxFzNQg7YlKOOPH?= =?us-ascii?Q?w01HS+aGyvSujPRgfcnwgbjsG0GQJD9FjWpjotrVsXO6ugV+mlqe/pr49wyN?= =?us-ascii?Q?EaHAyaCbO/SPGgCKHxthCq+5Gplw3W3rsYZ2dSPkxZ9yZ4BL9lz97Mfpdhaa?= =?us-ascii?Q?9hHWgz0/i1wJ1qPAETumwPIXAeCPCgWL8IEaLBwUSl/QQEDIpUhXUgm9Db4j?= =?us-ascii?Q?0Pu38tKaoNngXyYpBYJ7Uq3tvzNWeQrXq9+bl0PmqHu0SSvC+crfHgs8HgJx?= =?us-ascii?Q?ZeEOOXstZcV1S70bKE1QPDo9CsvJyzcsyZ1K/dqdLEqv/IxMg9ypbborGvw2?= =?us-ascii?Q?M3zf2xaFa1tQKz467r+LvrOoxArr+/06FcMILWAd/42qd8c9UejpmZHObzTJ?= =?us-ascii?Q?eZLGGj0TuhUKbS7P1/6gxTbxzCIOgD4vZ8zFtZKGGM1o7jKUIZffDWs4W0wn?= =?us-ascii?Q?NX/M7El4t0m2VIKUU9ZHFfA/Cyvehz+7L81PJagVxrGSUtWktvZtpdfqSwKH?= =?us-ascii?Q?2+h1vlGtNAXsm9s=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:39.1604 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 624f4ae1-7969-42c4-dede-08dd5ff24a6d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6301 Content-Type: text/plain; charset="utf-8" The functionality in md_clear_update_mitigation() and md_clear_select_mitigation() is now integrated into the select/update functions for the MDS, TAA, MMIO, and RFDS vulnerabilities. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 65 -------------------------------------- 1 file changed, 65 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index de431f2bb012..841ab123a180 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -62,8 +62,6 @@ static void __init l1tf_select_mitigation(void); static void __init mds_select_mitigation(void); static void __init mds_update_mitigation(void); static void __init mds_apply_mitigation(void); -static void __init md_clear_update_mitigation(void); -static void __init md_clear_select_mitigation(void); static void __init taa_select_mitigation(void); static void __init taa_update_mitigation(void); static void __init taa_apply_mitigation(void); @@ -201,7 +199,6 @@ void __init cpu_select_mitigations(void) taa_select_mitigation(); mmio_select_mitigation(); rfds_select_mitigation(); - md_clear_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); =20 @@ -678,68 +675,6 @@ static __init int rfds_parse_cmdline(char *str) } early_param("reg_file_data_sampling", rfds_parse_cmdline); =20 -#undef pr_fmt -#define pr_fmt(fmt) "" fmt - -static void __init md_clear_update_mitigation(void) -{ - if (cpu_mitigations_off()) - return; - - if (!boot_cpu_has(X86_FEATURE_CLEAR_CPU_BUF)) - goto out; - - /* - * X86_FEATURE_CLEAR_CPU_BUF is now enabled. Update MDS, TAA and MMIO - * Stale Data mitigation, if necessary. - */ - if (mds_mitigation =3D=3D MDS_MITIGATION_OFF && - boot_cpu_has_bug(X86_BUG_MDS)) { - mds_mitigation =3D MDS_MITIGATION_FULL; - mds_select_mitigation(); - } - if (taa_mitigation =3D=3D TAA_MITIGATION_OFF && - boot_cpu_has_bug(X86_BUG_TAA)) { - taa_mitigation =3D TAA_MITIGATION_VERW; - taa_select_mitigation(); - } - /* - * MMIO_MITIGATION_OFF is not checked here so that mmio_stale_data_clear - * gets updated correctly as per X86_FEATURE_CLEAR_CPU_BUF state. - */ - if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) { - mmio_mitigation =3D MMIO_MITIGATION_VERW; - mmio_select_mitigation(); - } - if (rfds_mitigation =3D=3D RFDS_MITIGATION_OFF && - boot_cpu_has_bug(X86_BUG_RFDS)) { - rfds_mitigation =3D RFDS_MITIGATION_VERW; - rfds_select_mitigation(); - } -out: - if (boot_cpu_has_bug(X86_BUG_MDS)) - pr_info("MDS: %s\n", mds_strings[mds_mitigation]); - if (boot_cpu_has_bug(X86_BUG_TAA)) - pr_info("TAA: %s\n", taa_strings[taa_mitigation]); - if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) - pr_info("MMIO Stale Data: %s\n", mmio_strings[mmio_mitigation]); - else if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) - pr_info("MMIO Stale Data: Unknown: No mitigations\n"); - if (boot_cpu_has_bug(X86_BUG_RFDS)) - pr_info("Register File Data Sampling: %s\n", rfds_strings[rfds_mitigatio= n]); -} - -static void __init md_clear_select_mitigation(void) -{ - - /* - * As these mitigations are inter-related and rely on VERW instruction - * to clear the microarchitural buffers, update and print their status - * after mitigation selection is done for each of these vulnerabilities. - */ - md_clear_update_mitigation(); -} - #undef pr_fmt #define pr_fmt(fmt) "SRBDS: " fmt =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) (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 CAF94233D72 for ; Mon, 10 Mar 2025 16:40:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624848; cv=fail; b=KAcscdlRP4ISpMp7986/ZRCeQ5rdy3hJ+CeXufygbX3lkX01nNh0UGW/O19z/ftkrJHM+g9z77TH1MXMe7Et/K4PqM2BHexRrI1X4TIPmJh9Qvx80frHvNCbtu4DSMxDR7kw8tSs31xGk5yHixFCCOKqoo9k6zmxAlbkYNvaH6o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624848; c=relaxed/simple; bh=AGm2Qp0MNQ1Twwf2/FWpUxlnyWnI3yibe/WGqhPkyPY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AXpRN0vBhfDfXU/AC/tULXXxAyXY5bcyqswqElO2gOoZAv7f42N7Bwuw00/X/f16RN7/wxLrr7G68Ykn7BF0MlTTeKdATaehR1J55+TGeOuMNgNTOL6COuAzoXkOpDnxgH/dZv0hN1N2C9urqS4CN/Pl1MaPaowpvQKZDWiYRno= 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=jsYZLrEa; arc=fail smtp.client-ip=40.107.244.49 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="jsYZLrEa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bNXrUIpVxtudjATCIb3EFPxcCBt0aLdN7ejCGQSZksD9o3P+s44jJPSNPoeirWXAnqvDQ3vswShGY/F/bN7yJ6ODFVFu0mYtSnJ4wnqBqUrS86ZRXdbJP8KgsZFjWUUiYwk4SkuoR8OyPwDX/Wo3uN3m/cBBX/Q1Ifr9WMN3mNm3N+QhckqvKaTj7k8DrorQW0ANHQvFIcNxQ5QvdxoIYdWvGNO5gCcLGXbEwHmFGhlxrW+KOj08+JW+e/sYjVia8WKSst7B/Zgk7+I30ztoxGTcLIGdYDO7qxod/U/Za6BaZWk7I1R4gqzhi6V077L6h3d61psh3aartptbdZkHRA== 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=IGI7KfiRKz+3IcpPYaqzWnAc70h3mjgkBxW95j49ZsQ=; b=wNsuEWKs3/RxHRYoMd9lW5KRkIgletxayLGZXdwX2CYRZY4TsuY5Lh1j/F/GL7cy21u8e7cMxx5Acn0mJGccNUefDcEDJDPMdWq6K19rKaYv1AwkEZfOtG6Katgy2sW0m1aUmkTUnB8EmAigtdac2MUPmj5MNHGoTabSFQAetX5PIgaarEvSMC/YzIZiuqpkc47+XlTVIUJLqdOG2m472Nx5Mad0N9rELalQFKTxUz7rop8CmdeT+VPA46k7IqBoBk0OlTwI7htC407eYih0LOqMARfqOyG5SqnGpGQ+s35zXJ4DYlSMVoGeeGHEZx92ZzdzNU3Ra5TpwOapG9Y1/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=IGI7KfiRKz+3IcpPYaqzWnAc70h3mjgkBxW95j49ZsQ=; b=jsYZLrEaB8A47FUm5H4qiQpKFM4lvVoMxkUcR4HqKDYKBIEdJruc8mdJ52QEhQsY05BaeOnLNc1BzdD9tU8VzbMDDytyt+PLZiyRyjbZIcu6QgRXE7Ja4fzWC6lixkszkAe7MsAdTQ0WcuB/jDL+lOCSQGl3d5NDxx7E5L7DR9w= Received: from BN9PR03CA0747.namprd03.prod.outlook.com (2603:10b6:408:110::32) by SN7PR12MB8103.namprd12.prod.outlook.com (2603:10b6:806:355::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:42 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:110:cafe::4b) by BN9PR03CA0747.outlook.office365.com (2603:10b6:408:110::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.19 via Frontend Transport; Mon, 10 Mar 2025 16:40:42 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:41 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:38 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 06/36] x86/bugs: Restructure srbds mitigation Date: Mon, 10 Mar 2025 11:39:53 -0500 Message-ID: <20250310164023.779191-7-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|SN7PR12MB8103:EE_ X-MS-Office365-Filtering-Correlation-Id: b5c1937a-ad34-4a51-075b-08dd5ff24c1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ujm6HRW0hUEKZxKe9HtrRBooR/I6dqaEl/ab4LbET72rG5tvEyaUENp4galJ?= =?us-ascii?Q?1RnHmwZjUTPRKgIC2r+uiy31dhmJBBh/G8mU0wShQoI+sdWmtHfyz0OuQ2Wm?= =?us-ascii?Q?hzT0FuPoSmIkWmDby7xVaiJ73htcLAvK6D+3/zqUmF1laNUphysUyKYRp4P7?= =?us-ascii?Q?50At5HUdGYOG/3Q/YeTuG17hug/Lnk7HM6yErvmk9FUSD0DLS5eIFqQJmRrn?= =?us-ascii?Q?FOyrL05ah6Op+dMXGHYphk5UXwZlpqKkpJT/jfTVxq65rkx/G351JJHtacC0?= =?us-ascii?Q?u88/ePbhLbazNa9jafmcyMh/cR2vbUnLtKfhSzqKuHKXIryeGC9qTWDeNoyD?= =?us-ascii?Q?ZGS0be6vrvTGJ4fhbmv2cS1BMwLSDvBZfDbnori15w+4NPg+0r6o1Fp5twA5?= =?us-ascii?Q?ZVu4QPW2DwjPdCrXDOLqMFBe6a5TCxbw4g8p1YVaZL9FRtS6jkRpuBI2B2QI?= =?us-ascii?Q?8UnTlHqLT4MajqCtSk9D/fs+lbMoR9wMYfJD8JpOG8ITJ5qHBorEXbmmw1Ed?= =?us-ascii?Q?UdxGggB+2uZvz9EUxLbPHryTIBo6RPExdEm3xaai1J3FWmIC1+eDK/TatuoJ?= =?us-ascii?Q?lPzHBYUItSqLNenmQzklpIVIuOatGgrHHAXh1sd5KJ1++Ixy9BOAn2/U4WJQ?= =?us-ascii?Q?gqVQ/Th8wckrJQEXddxpiYZzOQrZklTtYrhIOb24dJUDo91pwnPA23PPcGDg?= =?us-ascii?Q?lsydHV8A72K0BtvSVPfb3KrqGeMv0f/A+hUL+BQWM5nHtYFWiNLjw27MFnvR?= =?us-ascii?Q?JIx3U3dTDDD2ivrOGm7ur7XATE9t6ejt9plJE/1cCop6FzRJblPU6bCbHwrr?= =?us-ascii?Q?L1Nv+a/AMjcCMd/K/2/xz/4fmu9S0yJcpOz4cXUH9lBa4Pv59056Q6xpoLDy?= =?us-ascii?Q?uo8BhLZRLtAePfij79HkqTsgK7Y1zwcQ/PqXQ4OR1cZcYC/c3RueiUFGVlWz?= =?us-ascii?Q?Hnsw6T7+aBZf5P3LQH+qVvivKAz6OhPY0uhNJi7gfa/IKFnMnTpcr5s1i9qS?= =?us-ascii?Q?Y7N2ZS6jnBC4uVQ1Y49ByPBMtISZ7sPY0ysrASW0PXbYzrAB/S6BjPaOP17z?= =?us-ascii?Q?z/BARYvOUpQb7SQpTZkpNGeGHKy0A6QXpxlYwEasIasUzHD7npOLJFwjQbtY?= =?us-ascii?Q?DGTip1dtmVJfU1BPk77odQewPC2j+TcMbQI8TPWFZh+O56/aghOJe/TYKECN?= =?us-ascii?Q?ZQq54gJcn/X3r5PxPZmsYFfKTDtAzyhhGUDOgR/OFTXyRP8Ft26UG51Rj4q1?= =?us-ascii?Q?HgqpmmEfygaPg/SSsaEA1kJ/EouiWvH6Vv5Kbw63+yi1K/0HG31Wyh8SRV0y?= =?us-ascii?Q?ZnXPWrdJ51Is4CUShjAJ8diZMbuXYT1o9B3m85QqQER3Vzpb9EoSQOWyeW/U?= =?us-ascii?Q?kAdvh9lgFZQc2bNT0Cx2yZVcdzDURtu2fThjSS6jpFVZxC0uMYpn97HLVL9q?= =?us-ascii?Q?CuXKicgEXWjk3WE+/TPkV77pXf9yMZk5/ipNELHiux2XFi5H2D0PeWvXLEm6?= =?us-ascii?Q?bPyaFK2ANrldnF8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:41.9573 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5c1937a-ad34-4a51-075b-08dd5ff24c1b 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8103 Content-Type: text/plain; charset="utf-8" Restructure srbds to use select/apply functions to create consistent vulnerability handling. Define new AUTO mitigation for SRBDS. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 841ab123a180..fd04de518fd0 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -72,6 +72,7 @@ static void __init rfds_select_mitigation(void); static void __init rfds_update_mitigation(void); static void __init rfds_apply_mitigation(void); static void __init srbds_select_mitigation(void); +static void __init srbds_apply_mitigation(void); static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); static void __init gds_select_mitigation(void); @@ -222,6 +223,7 @@ void __init cpu_select_mitigations(void) taa_apply_mitigation(); mmio_apply_mitigation(); rfds_apply_mitigation(); + srbds_apply_mitigation(); } =20 /* @@ -680,6 +682,7 @@ early_param("reg_file_data_sampling", rfds_parse_cmdlin= e); =20 enum srbds_mitigations { SRBDS_MITIGATION_OFF, + SRBDS_MITIGATION_AUTO, SRBDS_MITIGATION_UCODE_NEEDED, SRBDS_MITIGATION_FULL, SRBDS_MITIGATION_TSX_OFF, @@ -687,7 +690,7 @@ enum srbds_mitigations { }; =20 static enum srbds_mitigations srbds_mitigation __ro_after_init =3D - IS_ENABLED(CONFIG_MITIGATION_SRBDS) ? SRBDS_MITIGATION_FULL : SRBDS_MITIG= ATION_OFF; + IS_ENABLED(CONFIG_MITIGATION_SRBDS) ? SRBDS_MITIGATION_AUTO : SRBDS_MITIG= ATION_OFF; =20 static const char * const srbds_strings[] =3D { [SRBDS_MITIGATION_OFF] =3D "Vulnerable", @@ -738,8 +741,13 @@ void update_srbds_msr(void) =20 static void __init srbds_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_SRBDS)) + if (!boot_cpu_has_bug(X86_BUG_SRBDS) || cpu_mitigations_off()) { + srbds_mitigation =3D SRBDS_MITIGATION_OFF; return; + } + + if (srbds_mitigation =3D=3D SRBDS_MITIGATION_AUTO) + srbds_mitigation =3D SRBDS_MITIGATION_FULL; =20 /* * Check to see if this is one of the MDS_NO systems supporting TSX that @@ -753,13 +761,17 @@ static void __init srbds_select_mitigation(void) srbds_mitigation =3D SRBDS_MITIGATION_HYPERVISOR; else if (!boot_cpu_has(X86_FEATURE_SRBDS_CTRL)) srbds_mitigation =3D SRBDS_MITIGATION_UCODE_NEEDED; - else if (cpu_mitigations_off() || srbds_off) + else if (srbds_off) srbds_mitigation =3D SRBDS_MITIGATION_OFF; =20 - update_srbds_msr(); pr_info("%s\n", srbds_strings[srbds_mitigation]); } =20 +static void __init srbds_apply_mitigation(void) +{ + update_srbds_msr(); +} + static int __init srbds_parse_cmdline(char *str) { if (!str) --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2056.outbound.protection.outlook.com [40.107.92.56]) (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 9AB48231A30 for ; Mon, 10 Mar 2025 16:40:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624848; cv=fail; b=pxQNTqnznOO+ATm/YQPitlx2VVFd73g8NM0RIHdWpjdE3aaVJvNzGS7bOeWycZrqzLkFJqhpuh+gwA3GjJRdRxii4OgfAC1OdzM2nlC1JJg9bGdbam45DDt00D1+HwlCOGE+pCEh/CeUdVYSvqICKhOZjd+XNxZEhrmMdHPigqo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624848; c=relaxed/simple; bh=E+HOkieAMtB7ajHPOAkLK8fSYAsfPdyJI3vBO5WCw8I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=C16DKThS1Za5N6ywd7wkno+0/Z6HaNN6taoF6IUDzqCp5/P6Qu/HohR6oRIGA6HKvsyFj2Jw2gRepvAg2CgZc+tooqXf+VrxlSlCohVwP2uYIml+tp3C3g213DNAlFo/TCgrmKGnFfyACltcPKyyer0hbjU6a2PvwwMWl2Gae8s= 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=nDtK8U0x; arc=fail smtp.client-ip=40.107.92.56 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="nDtK8U0x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S2om0bmv3A12vYw15QPzfempAEmz4XdstvpRw3KG5cQLPYtnaRBHEqA0w6UUDJG4lrBXgF/G8eDl5KhPOt/D9CUfNin9Isfim92A/PeAJ13PDHMEJCJN9iB1ScAW9PIQUaMZ8urdZ4I01Oby5N7sM4PY+FVWPy9ZzePnjIkJTOnYI5IYf9UPVylGjsxF+EoKzWEChd7qGuQD9mu0ubphmjRwixMOZDZ5z3lxH/FCJ3jA1hLvcno4RSRlFhwzaAlbOzaiabp7Wi/3JjL4q7uubR6jV29upT7N3KIuy3iBj9CtIsTZuTdbBTXJ0NVtb5OosRZu6ObChvYP6JOXrUDr9A== 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=SLDSqywwwezmC96KHRYVeVQUkXVIBgAPLh5vm/E4R3w=; b=UPAPznLd3Iwj8cRwJ/THCNgK0ILhR2ynKwudGX12G45h9iOnMEEjLs5B44fcQLokBEC757u+YGOBQl56KXWBWcxMAYjjXPXaRsSxnol5Ymi5SqahHq/Yk8Kr6rRK2Bo45URqyf5Y/cAY8coGqjO+AZMwr6sIPBRaAFFX8i6K4NX2+wBp1mayYKsoQhBAlTTz6koa5OncOvzEs/iRK7aSL/nBE3UOLL6xjqtebPPJoFoUzUJtKrtMdmgGM+WuJZ/Cyio2YV9220jLZTiJ41iWtrtMiy49BFDsnvzddZW/PCXAt2Gygj0HiK2LuQbuEI8tUgqC9F+kdRbugg9loqeNaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=SLDSqywwwezmC96KHRYVeVQUkXVIBgAPLh5vm/E4R3w=; b=nDtK8U0xQveqyhCV07n0eo9wpN0LbYdOh5QHjRuLKfDf/xFftsmcS677kWBgWODkMIYwopySmDpqa8sJZbm2DJS5Vj3yDWp2BaXCz1wj04HJ8yi2sVQRpZB6MNxvb1DLDVvYB8PCMp+AT9TVIurUGkoptz5juLdopJsD7JcDB4k= Received: from BN9PR03CA0734.namprd03.prod.outlook.com (2603:10b6:408:110::19) by IA0PR12MB8975.namprd12.prod.outlook.com (2603:10b6:208:48f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:42 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:110:cafe::a7) by BN9PR03CA0734.outlook.office365.com (2603:10b6:408:110::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 16:40:42 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:42 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:39 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 07/36] x86/bugs: Restructure gds mitigation Date: Mon, 10 Mar 2025 11:39:54 -0500 Message-ID: <20250310164023.779191-8-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|IA0PR12MB8975:EE_ X-MS-Office365-Filtering-Correlation-Id: f278c096-15ac-426e-2bd3-08dd5ff24c60 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?T9MkyXCCC7+Mk0IatW35GnGeXqYd4xtngMfRoKK+57/S5jFgNL4543TBlE2L?= =?us-ascii?Q?2C0jA4ZdoNALb5yI8oF0YhG0Gc6IJprHstzGYkUfCHXbbZYYk4sxh0ZZXN10?= =?us-ascii?Q?I3uTVvQVu/BM2D4PoAo09Ori6Ynwf69MHYAKEtdTZU6bRfhzkslT7frelHql?= =?us-ascii?Q?coI+wMKDE3VZKtfC9pdi0jMVDiq+esnZXvsHvtHymwrCEq666iYBcSOGQkTT?= =?us-ascii?Q?4aI8AbXXqKtRItd6PHTzkd6ciLRGsnQz4jVDsn8XAxq4YR04b9vwRD12n3zM?= =?us-ascii?Q?+G2UptlfMkOfecZSMsJowicEao9oGeAoLzB1feFhqfV36I7quJAe6CPd0JLV?= =?us-ascii?Q?5pwvitJ4djtzc9rYw6ZJmCI+uvz1P3tbIcYiQB82a+H8k439IdQEF4X3H7f8?= =?us-ascii?Q?1Su46P5f2JvRmfyzDyI3ZQ94LyByXsqkpmtCrxzas4F5ZryFlTFNhSrFhIGg?= =?us-ascii?Q?/QJHL0h0OfsFDaaK1qu9pF9ru+ei7gM1e6LC/XOr9YLLcrVx59zrytq8U4AW?= =?us-ascii?Q?NpyAk4SFyuD8VqTAVulHETyTBSJ6eRTJS5c9NqfZuQvS3JIroAVIKAtaBG/k?= =?us-ascii?Q?w41CqV4TyziG7kILGTRp06dbFY6yCMWbTPSW2sVBDG7MjZGg3ZjO48plyWzK?= =?us-ascii?Q?TWHicuTBn2EJkV4GnCJZnGfaLHp871xv8XMaHDtVvhqVMlJG57EPEcQi2D57?= =?us-ascii?Q?Xa/n+rK9eZFyJkstAkYj3xDrszzDHNMKL3e2aECiMhyDWp4T7cPVYe1+hHK4?= =?us-ascii?Q?VBD3NEMqb2P+REinj+qiJ3oEPSpORC1y0/7V2PPsI/FbKBZgATvBqmERxleM?= =?us-ascii?Q?iKdw7DvGc8TnWSI208QqkQJ6fOmZ0T3agx9Bz8GWm+3jtzHBlHPgE972gynX?= =?us-ascii?Q?xTzvCMQuAo9uffAs3vOL8HTjOD9ndQpNNQKd90GBnrmqWhbeuUrIDGpwB8Bj?= =?us-ascii?Q?djlRMECu3M7MdgRVcmYalW9MlFKOb/jUZ05GNTBQlrMygMgs3v3vQQzmbfTJ?= =?us-ascii?Q?ad0P9U49SrdG3UZEAjYZqo+kyE6SnjnbQhGHSqubrA/w0iIPleX7Lcoz0jqf?= =?us-ascii?Q?x8WXJuKULBkI4k+FJxzqJAsE9H0i1WCuQpxvbdlr9bqC8ps6efPYtOXBFjJ2?= =?us-ascii?Q?0riPKhE3rNL5hn7KLl620Y6exmyJxmfnvRbE4vJHxyTHdH0vmKccmaZSwI43?= =?us-ascii?Q?qQLKE4Ub5ncEFZwb7qzv6VVH5ysTp9MDVu7pH0By326HScYHrg5XZDS2Gu0l?= =?us-ascii?Q?ShJUj9Y0pvQOKdegQUQ3Qev+qT0vvG67zGQqGbVtnpXfx20qI5EJRyMYq8Gs?= =?us-ascii?Q?laZO2fFIJNZUC54KCp1ScrMSfhFGpz7Jvw8OBUkaAOqnq2P4iNdtFEgewpz9?= =?us-ascii?Q?0tHaqKW804hU38MA3x7+ORn094qKvIz5sC73zjO098ASiokewZDhCSkbPPG0?= =?us-ascii?Q?ukydvbBHzRiEUnSp+z4H+YztgXBc2Zi0rmtqYu9mIYCju6FwTkM3jyTxTQ4j?= =?us-ascii?Q?DnQx4kAxNBaTxIE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:42.4105 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f278c096-15ac-426e-2bd3-08dd5ff24c60 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8975 Content-Type: text/plain; charset="utf-8" Restructure gds mitigation to use select/apply functions to create consistent vulnerability handling. Define new AUTO mitigation for gds. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 43 +++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index fd04de518fd0..ee7a8009a188 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -76,6 +76,7 @@ static void __init srbds_apply_mitigation(void); static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); static void __init gds_select_mitigation(void); +static void __init gds_apply_mitigation(void); =20 /* The base value of the SPEC_CTRL MSR without task-specific bits set */ u64 x86_spec_ctrl_base; @@ -224,6 +225,7 @@ void __init cpu_select_mitigations(void) mmio_apply_mitigation(); rfds_apply_mitigation(); srbds_apply_mitigation(); + gds_apply_mitigation(); } =20 /* @@ -818,6 +820,7 @@ early_param("l1d_flush", l1d_flush_parse_cmdline); =20 enum gds_mitigations { GDS_MITIGATION_OFF, + GDS_MITIGATION_AUTO, GDS_MITIGATION_UCODE_NEEDED, GDS_MITIGATION_FORCE, GDS_MITIGATION_FULL, @@ -826,7 +829,7 @@ enum gds_mitigations { }; =20 static enum gds_mitigations gds_mitigation __ro_after_init =3D - IS_ENABLED(CONFIG_MITIGATION_GDS) ? GDS_MITIGATION_FULL : GDS_MITIGATION_= OFF; + IS_ENABLED(CONFIG_MITIGATION_GDS) ? GDS_MITIGATION_AUTO : GDS_MITIGATION_= OFF; =20 static const char * const gds_strings[] =3D { [GDS_MITIGATION_OFF] =3D "Vulnerable", @@ -867,6 +870,7 @@ void update_gds_msr(void) case GDS_MITIGATION_FORCE: case GDS_MITIGATION_UCODE_NEEDED: case GDS_MITIGATION_HYPERVISOR: + case GDS_MITIGATION_AUTO: return; } =20 @@ -890,26 +894,21 @@ static void __init gds_select_mitigation(void) =20 if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) { gds_mitigation =3D GDS_MITIGATION_HYPERVISOR; - goto out; + return; } =20 if (cpu_mitigations_off()) gds_mitigation =3D GDS_MITIGATION_OFF; /* Will verify below that mitigation _can_ be disabled */ =20 + if (gds_mitigation =3D=3D GDS_MITIGATION_AUTO) + gds_mitigation =3D GDS_MITIGATION_FULL; + /* No microcode */ if (!(x86_arch_cap_msr & ARCH_CAP_GDS_CTRL)) { - if (gds_mitigation =3D=3D GDS_MITIGATION_FORCE) { - /* - * This only needs to be done on the boot CPU so do it - * here rather than in update_gds_msr() - */ - setup_clear_cpu_cap(X86_FEATURE_AVX); - pr_warn("Microcode update needed! Disabling AVX as mitigation.\n"); - } else { + if (gds_mitigation !=3D GDS_MITIGATION_FORCE) gds_mitigation =3D GDS_MITIGATION_UCODE_NEEDED; - } - goto out; + return; } =20 /* Microcode has mitigation, use it */ @@ -930,9 +929,25 @@ static void __init gds_select_mitigation(void) */ gds_mitigation =3D GDS_MITIGATION_FULL_LOCKED; } +} + +static void __init gds_apply_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_GDS)) + return; + + /* Microcode is present */ + if (x86_arch_cap_msr & ARCH_CAP_GDS_CTRL) + update_gds_msr(); + else if (gds_mitigation =3D=3D GDS_MITIGATION_FORCE) { + /* + * This only needs to be done on the boot CPU so do it + * here rather than in update_gds_msr() + */ + setup_clear_cpu_cap(X86_FEATURE_AVX); + pr_warn("Microcode update needed! Disabling AVX as mitigation.\n"); + } =20 - update_gds_msr(); -out: pr_info("%s\n", gds_strings[gds_mitigation]); } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2078.outbound.protection.outlook.com [40.107.220.78]) (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 336952343C2 for ; Mon, 10 Mar 2025 16:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624850; cv=fail; b=SZ3uq8cxgwhn914GSOV/NrC92ds3DfvUtSEJj/3V1Y90dd5rWcuz1JgevzmNuf3NrUsfI3WLUA3nS9HmINha/LRM9vSWbMLZVvM6Zk0HOGOQICQ9Eq3lPmE1Xtcqp4teOlK7uDssu5i2bkZT9svbh18y5RjYT3H5eU2mztHmt+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624850; c=relaxed/simple; bh=Q+Yue1gMn7wcxp2wKsjTdhdw2V7/pSHWVRoZMTEwp2I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dqx3CbkgFrow4ixUDkFG9xMN4KruvQ5s/JGsSq44xyYyCFN3vOHiyJh0BaUFhCa1Y9U21MSMnTcZNwFznzo0pmZapHzOxtTMh4kSYMtWSxjYa0T8lJgQmkoWV7qXJYb8/nd+M2SIwggfwtiP52xCTZ/AW0IBRVR5e84qBT7xRQE= 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=KEYO7iVy; arc=fail smtp.client-ip=40.107.220.78 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="KEYO7iVy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V3r2C+E5L7VTEpDPC4WsZ51Wo3Z4Cq06TeLP6D223z+14NFx88RGO0vXMql1lSD3Z8HFPjfdZw5/7ORzHYNkw6ejxoJuwZqWe7O8GI8tIbSvPRAtBPLI0mJCKIrErTXqgJgNejAaLXn7oUnBlbh4hqnpyKlq1qHjTI3WI0X9SwTc3qbFGV7JP8mj3cu9RPdeey5hmd+AhXPawPfiFDcdkC+jIfArlBBBxbha7ZBZwr7jgRHGB/gYVmpQ9QZYI/zC5F9SauohQiJSl58J3Uc1TTyvCkQxGBk+vMbZ/OoCktDgnssDhz8sRFJ8whl9rlRRJiGDXWn1iGPUWzZtueHzqw== 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=qP71tFKdROMV0ocq+5HT2/BV53oiBNwi+8LaIIY1zaU=; b=IqBPEbhr9TPrUUImIHTRgqv0Ns8eDRM8ZplqVCjkz4eM+heIQ+PzjMmipLMfN1H0NGt41aOkQxwoMMPooiEtFPwQijie/43SlMQjgyX3uodOQVddBdtLRmpAWKYHUKI8hpGWBeytLWdbxOAGxmxvZpRmP2jq6zvAEHHcL+4L5icSeCqHpNlrWZnnQyQF18Oi9OgtR4jT9QwTrwDaEZbkawH+/KZIgrfhjfl5bkbWoWHudoGMxSRTIbP+daxjw7mA20Xhg2vTqnQpkBf/Kl+oW8j6O2szWO0HfHrre9RjYOcWXCBSVWcKE42hQbtYcJnE0Fj/NrxH6qdM+ZKaWP/DZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=qP71tFKdROMV0ocq+5HT2/BV53oiBNwi+8LaIIY1zaU=; b=KEYO7iVyFyk/s36nEsKQ0zjBNK1QC8nmvV04vkvLPa5DmCPsQhG2LqDgJvAz9xKwVNJYhCTlNVnbZP14yUW55YK1VE1Yvr+nT48sesAcglmdFikxJWKTzicZ7ckfb0JkOU5O2oVIsZJpMK8zl8dcWmjFaVx5rUK6bTLRuNu6hUk= Received: from BN9PR03CA0732.namprd03.prod.outlook.com (2603:10b6:408:110::17) by BL1PR12MB5921.namprd12.prod.outlook.com (2603:10b6:208:398::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:43 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:110:cafe::d7) by BN9PR03CA0732.outlook.office365.com (2603:10b6:408:110::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:43 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:43 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:40 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 08/36] x86/bugs: Restructure spectre_v1 mitigation Date: Mon, 10 Mar 2025 11:39:55 -0500 Message-ID: <20250310164023.779191-9-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|BL1PR12MB5921:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b565add-fb46-45f2-61c1-08dd5ff24cd7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mgdGH+nBg0esVEqSuKEO6pC4poAWpQo6vmLLay3Vm3xBlZCBVxbxJith90ZQ?= =?us-ascii?Q?VWtHRIHxRj6KzNUG4Lobl36dKgAThWryOkYpSr21ws4IvS/T3PSvAse7lSBG?= =?us-ascii?Q?6UsqUE+uRAC/05gm4Sz029VWxDUz0d0aDwuyDjjVnUYucx4nM7W57ipl+SHk?= =?us-ascii?Q?+Xx93iVLf5LJDzNcI+nG4ar6ylshomMoklkk2+DGg++XhL3JQsFvlUJ/cTfX?= =?us-ascii?Q?0Bx6K+PbFp9i/AGzHnW1Zln0lqEntFLYq5K6wh8IBYrlCpBPfdXfZY6AVMl7?= =?us-ascii?Q?DEA4Wz3rn/74IISkF98+mzRAG63O1kwEz/tRdphD0eNhlkGD7Ucx88YmJgsM?= =?us-ascii?Q?ll7a3nYnQ/MsiEWNcmEn6t7hJ2L2M57WudGzDgEggDB/6zcyQDg96txXSMMj?= =?us-ascii?Q?McRouLyx4GF84qcW3PkZrNeLd6gDT0ldeqaCYNY6mhKmnJbMY7gWELgi+MSS?= =?us-ascii?Q?TvE7/YOJ6AQFQnXtlQWFAdbvRSVJGxR0u1QznbjAmhMrhgNux0hNek2GIr2D?= =?us-ascii?Q?gtx4P5b+GK/FyGyDONdKKIM4pQ+GQeMY3cglGxsJjhVFsExWuhx8PJilRasJ?= =?us-ascii?Q?bVOu44dB9/VpSj9Lq7Tr7ikrLO2qD06KUFkOJTIbB7JE99+vGHPID45Xi0bT?= =?us-ascii?Q?0L6V5PaNwMofFYy3g+6LFyhZnXygwTGzQW/vj+4HjpYDPMI2D986mYC5Ck+b?= =?us-ascii?Q?RZTJxxW5X4AwggRSboEzGyZOq3vq22cFqShhXQ5Je/lVUv8qK8FUNc3yvTLK?= =?us-ascii?Q?6t74LC6TWCz5lKad9LzhnVCl2wG34J42nOYAXFAd8qBW25joXpu7ReWHON3X?= =?us-ascii?Q?kIMsxWyAGCqr2CJJi+ZQMcJo/AKa6KeGoU64UeC+xWbaISfph35u/Z3DeBG2?= =?us-ascii?Q?rzGLm20UB402uOEq6Z78WMRF70SIljZPURgVKXazMb/hU9OCPqYFW/YvlG5/?= =?us-ascii?Q?mtdEzLY+9Z7ModXuwiJCLYu2chEnyUmdzWJdp4G3j5SPuAQurXQgduXoCaQ8?= =?us-ascii?Q?v6tTUepKq8bYz1/pUwHW50WRiQjLzX3QLDdBC9e7HLCUJZ4BteSgdz7AQg5R?= =?us-ascii?Q?ifXtKrwJJWFXxgaW0BJ4065lKCnsVfIszHWmSH6Pvjg1uCYkFeeC2GKj9qDc?= =?us-ascii?Q?Y1tMrbzmHN5/gS98YeMBVUX2uc/GOZpS78mNtnq8fgSVnMv7yzq4NMfgn+Td?= =?us-ascii?Q?YA9E1xqUEUbpXYL+7HRQWzXyL6JPPBa6FnrmNBcou1P0QfcMgerUKc87WDPn?= =?us-ascii?Q?YChge8moaIkem3TvFhaPS7cQqW8zPEuEv0eDPB0RKHA1i1d6YL1SyMAJDE8U?= =?us-ascii?Q?yMRtP7Ft9dMqGDVvEOWWTVdvvLacx1aQnzRbjN7YLisX4ZrKgoSH9rdFeGVR?= =?us-ascii?Q?qrk2oG7MxyBI6ZUJAE7eYAhM8MNZRdD8LqhxtYMXE70fcmkKvmoZZkgINYeX?= =?us-ascii?Q?/y9Zjsy/3kQY9Ki4szb7p79457O0RIZFleF0TQGJcU7atTJOU7EevlZiU8SZ?= =?us-ascii?Q?S9AJhP2V23mTODg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:43.1917 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b565add-fb46-45f2-61c1-08dd5ff24cd7 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5921 Content-Type: text/plain; charset="utf-8" Restructure spectre_v1 to use select/apply functions to create consistent vulnerability handling. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index ee7a8009a188..de120ecb752d 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -54,6 +54,7 @@ */ =20 static void __init spectre_v1_select_mitigation(void); +static void __init spectre_v1_apply_mitigation(void); static void __init spectre_v2_select_mitigation(void); static void __init retbleed_select_mitigation(void); static void __init spectre_v2_user_select_mitigation(void); @@ -220,6 +221,7 @@ void __init cpu_select_mitigations(void) mmio_update_mitigation(); rfds_update_mitigation(); =20 + spectre_v1_apply_mitigation(); mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); @@ -1008,10 +1010,14 @@ static bool smap_works_speculatively(void) =20 static void __init spectre_v1_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; +} + +static void __init spectre_v1_apply_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) return; - } =20 if (spectre_v1_mitigation =3D=3D SPECTRE_V1_MITIGATION_AUTO) { /* --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2072.outbound.protection.outlook.com [40.107.212.72]) (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 654F4233D9D for ; Mon, 10 Mar 2025 16:40:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624849; cv=fail; b=BqKiz67dtgh7FfsEty5fcVva/hbkFc8YQL7DBGVo0eI3LU7xAunrzYlgGxRW1rONvE9BFFCQhxcqFXIGQtgLREIZKS5IwF4IrGaRV+YfL0kSIJSAEqk+JVyjE0Ai2rvA8QZLPq3U1D7aFN1RKQj4r3f+X5qfr9GqTSDS3NXoWhE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624849; c=relaxed/simple; bh=YxleewDcwK4TqSsm33GGuqQKAlUkU5ZtFt19W+CC4Ik=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gYMj55oyEww0ufrWgA+IkO8u8v09r2cCqqFkDGeDYe7OAvp9FakT6WJw0yngsEMqFBMclDldO1fMdb9GeDZZ6Jf9u3Caaetr1TyXLDKrYBLC8xKXKNcLTZOIqTUUIRRF97jixVe1XnEOoHHc04ilfGT9T5DKGbJB/G+Uc+tgZqs= 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=c5CLgnEu; arc=fail smtp.client-ip=40.107.212.72 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="c5CLgnEu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cH7f0pDgUZ5Rsc9K5oyZ3CtGKVKUUZ/cR8jR5kUbsF1lPDFUEkgQkQYpAwrnokvDLqcLsWftPL/HWasZ434tuVaT7M/S6sMxHe3XS6Wb0fVLr7Lc0xXB82VLil2I+YjWckvECSeYt+mAsbkjQ/Ju/d1AwTKqv7IUtJBg5XyI6wp3c3/Ij6pQ/c2vkPCPIKIO5kpwG4bMkRVQQoxxaKmlx1zu5lzM8iSyWYG0ouHGke+TB6m+N2GD7q6doaMxED5eMgnlEbJLPByYQtAe2YMwn9B2j3jbtfly50n/dzOUamq0LN/oXdGmfv3mtfSN0Eor8z6Os+vleQxXJ2qbn6WQVQ== 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=Qih7QssvUCSexbTjBpL4FeaFsPoJxR5yOxmbj/lARIo=; b=I5/ZJ77W0ynBrqaqxHeLBpPkR3EhCfbhSqXAgDfifJ6IlRoTG49cHqF3iFJfaWMMIXQwF1qc7H1F1yLzpk/rEBMzTbNcdsGxrK+5DSUiAexZ+W61sX3G+AJGr36Z+anmcw+iwbkVoNDUSfDCub+1MCQGrTs3oY8WY2benh3//wfUSlsuhmMP5nnUtHFXYYbCsi3rUMl4KgteYCFhXrcRxYT4SUwqZeOgaAZQSRj5kv/k/4NRMSqJt4Pn77CewRjqLUpiBgXHBiwifCWtKdlKboFOxV1y6A35X9bEKaLRfw1YZ8pX2ZYElHhvBN8S2XbgkNIbV+gYAhxZAI5yNvqAZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=Qih7QssvUCSexbTjBpL4FeaFsPoJxR5yOxmbj/lARIo=; b=c5CLgnEucTVnvpDg+evwD8fzlpr0R/eFRdxPuzQO/wupBaOo3YQbrqCd47JeEWeXwvqGjOMGCRAE6VxziOqf8/BG49pVo/2zsJUAOhW5WGiiRidEajlHwpwpHS8X1OUuAIVvPh9sK9aG36R+jnm58julnzNrxThLw5oEOl2Ci7M= Received: from BN9PR03CA0748.namprd03.prod.outlook.com (2603:10b6:408:110::33) by IA0PR12MB7554.namprd12.prod.outlook.com (2603:10b6:208:43e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:43 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:110:cafe::b2) by BN9PR03CA0748.outlook.office365.com (2603:10b6:408:110::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 16:40:43 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:43 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:42 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 09/36] x86/bugs: Only allow retbleed=stuff on Intel Date: Mon, 10 Mar 2025 11:39:56 -0500 Message-ID: <20250310164023.779191-10-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|IA0PR12MB7554:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f9f5cb1-adfa-42cb-e86e-08dd5ff24d1e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yprC64ISb4kevj5ZVB5DaeBSnNhTz8dvXAfdFbPdOOGCe1PbZ9LZ907J8Rh8?= =?us-ascii?Q?+n7zyh5Nz4GWwyPHNzAKyxK/nZU8tlpKDuMu+4RAf1zhpoOZOqrJpMcxcFSW?= =?us-ascii?Q?q6RMEuQWmO9L6qWjcaIbWLfKefgS2YvOvLtp4zGbvHK+1u73wIS5zgFSc8Ex?= =?us-ascii?Q?psjWJgx1j4nYx5YCMHowhNWnwiTaSLCM6dl0XYjLEtmwLmizT3X5Fg4Kp/+X?= =?us-ascii?Q?F9PUGu+b1Zb0kiW5skqFFbd9Mzucl2nLaq+HsQDO/1izk9oPY4D01tAX538q?= =?us-ascii?Q?T85H/baQMTqsg1Mdac48znraP0VeWan3CtcmY2UniBdQwyOxUy42r2gDFvXL?= =?us-ascii?Q?aDC9mm82l5akWxvDScoaxHLJ/mBdEVXE4kpOQO/GbsKsH1ddjqFIXuMwlqTt?= =?us-ascii?Q?zH2FlBEU8Tat7DX/PQ0n7ImRxMbmHuMRG4o81anVLUVGs4AqZtpHa7lAmRiN?= =?us-ascii?Q?GAM6VWN/CmEX8Rjo/2lvPxNxKmdLJ0kvbw1LKZN9orFmLPZhFwIcsUNKNty4?= =?us-ascii?Q?h1pTR39LVlAnb0FsMaY3+kLc1+2vwVzuzSyf/73CEXPfrN3AwBVCr/4idvsc?= =?us-ascii?Q?1CPB6FYdixJ2R1nOkeQwBiLXFbJmxEx7TeNvXTHpBa3yzUdIyUPBQPb0E+FT?= =?us-ascii?Q?J4z5w3GO5HRXEqr+3d2Sp8E/CocNVtleCB/mFGv3FGfeiVwKTnSpRIN0LSIr?= =?us-ascii?Q?lHQJmiee4o4/xICzWHywKipsMOuAi7xI6crmN147nczaXfCDt+Ne8XG1dzuc?= =?us-ascii?Q?09c8Xd3VUBmY+wjG7nR3gUERir5Cyck4YPko5dX+eiwmKuFNC01AET0qOPeK?= =?us-ascii?Q?hPwQ/fdcamAOowE7SBDs0ispOyUEO/MXA0hihRQnIhIi1DnGpuuvwjvqPwyT?= =?us-ascii?Q?vg0nDzt8GZsaajonOm9DLPZ+zPX+8K1Lh3uZa8Jjhpu9IDXBbcftnWr4/K+F?= =?us-ascii?Q?ono+ArLqo4gkCYVL5kZ2No+iPQNAloBO/F56ECMaubeSBFWaRNWXzj9ueuYB?= =?us-ascii?Q?+oxSyHfXOeTLuNLGDpybf8VPNSBdfN5kPWDmCl+PtdYKci1wKvlyTDZbUXOi?= =?us-ascii?Q?Yoj6yz3qVX3tu/0xxH38nuTDi8qNBwbazCSFDF69zEQgDBtH1P3r21sdlOid?= =?us-ascii?Q?OORVXIStiSKAZOFAge/hPAouDYczc3RTDWhUhGCUt74L8DVqgBHQzYqPSUar?= =?us-ascii?Q?Tgl+LQPmAqU0BDFqKh67lLpHWTSTeneZOYOHOxcQmsPGsdpNUrG5co+EQQzT?= =?us-ascii?Q?50hlILBce252Obez8reHvkBEi4LKq1CUyMs6GdAVTl/Bb8czzD1kOJ7tGhoZ?= =?us-ascii?Q?/rCEVK1qd7Xq/29wAkw2iF8qDu+uuA3eS2bnZVYkcPfLaPIJo9lSuONZqiQX?= =?us-ascii?Q?TjsI2mBAK4CQgs0SVszwhn5pA81RD6py2DXh13KB/DjCjaR12ZMpOhQus0jU?= =?us-ascii?Q?FLdbB0tmxORKUco5J/JyxPtGuHRbkLAtmrvcxcmNRrk36BhG/5OkRrafcaBn?= =?us-ascii?Q?pWuwlu3HJp6epmI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:43.6605 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f9f5cb1-adfa-42cb-e86e-08dd5ff24d1e 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7554 Content-Type: text/plain; charset="utf-8" The retbleed=3Dstuff mitigation is only applicable for Intel CPUs affected by retbleed. If this option is selected for another vendor, print a warning and fall back to the AUTO option. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index de120ecb752d..4af342d226c8 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1178,6 +1178,10 @@ static void __init retbleed_select_mitigation(void) case RETBLEED_CMD_STUFF: if (IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING) && spectre_v2_enabled =3D=3D SPECTRE_V2_RETPOLINE) { + if (boot_cpu_data.x86_vendor !=3D X86_VENDOR_INTEL) { + pr_err("WARNING: retbleed=3Dstuff only supported for Intel CPUs.\n"); + goto do_cmd_auto; + } retbleed_mitigation =3D RETBLEED_MITIGATION_STUFF; =20 } else { --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2065.outbound.protection.outlook.com [40.107.94.65]) (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 D99062356DA for ; Mon, 10 Mar 2025 16:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624856; cv=fail; b=Y5O/0r1GG7maD6aYPf+D5I1gdo6JT+9GPS6hCho0aVrC8SxHbY2ba3/Z3LJrO93Mx5EXsijY/jSzzW9Ck+0NUWYbnZPBud361QhPiRZ95z05MR0c9ivjgc3KVxBvpoaZkDCLmyuz9jPykrIfMR/gKuqEVzd5F+NXMfhXySZVL+g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624856; c=relaxed/simple; bh=ISqDoFr80KqcseFXTdxmjKRzU9Gsel7LLutZpmuNXZE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gLnEVttitkfVncoItsqkKLFqMf/veG6Opl3NN8LKfWH+Ufijr5KtSXa4q46B7GdSrlKAGd/PW8et5DRNRs/i7RFtl6xIGLi929hD2wFMkHiN//q70I6ozIr3bobHx0+qlEBvvLvJ1BdUvG+a8EEbSRSaemZobRRgsUp+L9Qk4Zg= 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=ELrNAkJt; arc=fail smtp.client-ip=40.107.94.65 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="ELrNAkJt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rn8cg9EKOENRqEx/6k4qJicxYQHGHG9sp86/J4Zw0ESDq1D1fcEW5VsoIlnmuWsZYedqYMiAH/bQqNT66VFyqxwDapLdMt7qmQUAaa98iu4dHzauqIBgOB9vdge1cbn+4wgdf2wjzZJjj7hr6IN1as1IbmIrxSdMpNI24rT9V/iU0qDbikLARg2BQDTzvVa8cKLYBa9nIsFf27Bf4ZT5GeraZZLnSk2tPyraccXkAULeunIie71nu7U8CsQ6qPPCli5NvqSkbFCOSCbDFd2TUd1dgxUsoUemjxoMc+pfqIhfCdgQd8oy43tF4B7XuMSlxv9yChuNZCRIRgwHNCNpsQ== 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=tb2QcW7o9rCMcv8cNUnPDmkDPP5Zg+CL3Y1GVR9eqZI=; b=TuWLb8dLqp3D5NnbPScFffBFKFetMhG7IHstQPiwWzvKfPvRaHZTCtQV6jKtV2NAyztcvPIBKnR+yOaps2K1iQkSGnOlDbJBd0NGx1lxyMqIdlnRhWgXIWkQyx/tQinIw3Ce2F1eQbyhSXabFq7l6VegLTBg8nAQCmqHjtt6HD1KT0S5Gs2JMiDCBykVuIvZCevZGd2EgHFuYyJueac1+kd/xho9jwejJA6X79RTmscEs9a7L4nrEeQkZ4KudPVsN+VtZC1pqiyJmUYJipTbNu/eoDnF/afyb3lGGowvr66OlK6eFCx9hmvxojOfGJHxwawZXUwtzPz/tcwAVpaHzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=tb2QcW7o9rCMcv8cNUnPDmkDPP5Zg+CL3Y1GVR9eqZI=; b=ELrNAkJtHbHyix1BHey92QUe0UYPMtrMcZNUb2kGOPrTYhYSLPaqdiC5nW/lvGZ24ZZfD0uUWIOItbPNj25GWq/BTaPRQrsT1EW9n/H/2Foa+Bm2Mb+Fn+H5WquEt+aeFFsgxxf0wzSOwSTOJdQy+UTArWTyNOXYc3TCiZxKtlc= Received: from BN1PR12CA0029.namprd12.prod.outlook.com (2603:10b6:408:e1::34) by SN7PR12MB7321.namprd12.prod.outlook.com (2603:10b6:806:298::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:45 +0000 Received: from BL6PEPF00022570.namprd02.prod.outlook.com (2603:10b6:408:e1:cafe::b6) by BN1PR12CA0029.outlook.office365.com (2603:10b6:408:e1::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:44 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:44 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:43 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 10/36] x86/bugs: Restructure retbleed mitigation Date: Mon, 10 Mar 2025 11:39:57 -0500 Message-ID: <20250310164023.779191-11-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|SN7PR12MB7321:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ca46e5d-e11e-43f0-3615-08dd5ff24dcb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3WCjXXIwbDSq2xlt5O454ATCvtyN7gbS1wKYl3RbPhgejTq22TTL/hvT2aek?= =?us-ascii?Q?/d1WdGoAGRtDz3kMRBo2ZkpEqvrl6TsKlXgHpAtj7hdx2n+gTiwQuwFUJcc9?= =?us-ascii?Q?b8wgnc5Ye3r69TGiX5LM5ndnARKd+ZhMavGsAuTv8aw3Umqe9gndGqslhYkT?= =?us-ascii?Q?iAhkI8GG0/ZgvN+ke6Oj9Q9qLUUagftyNOkIjtdTFtmnfkpzWliN09I0BSKV?= =?us-ascii?Q?8tzPYwxHVyLUGqkqZfdCG2OTzpcuLeRz9cZgWodP6zXnzn3P4w0fPaF3EHKL?= =?us-ascii?Q?6t+ln4SrPXH4brML3BLcKk33bJDYW1B1wtWPnkAYQei6uGWkhA4daAZgeAx7?= =?us-ascii?Q?g3p/xCPM0XeSGhERxdnEAbSTtS+T+TdsU1Wwpf8K4IHFvU+ulgpjpJwwQJdH?= =?us-ascii?Q?xC8cvgQecxy2yXDVgBKOV0mntKQitF3qMCDOY1oFsJUohHdJSIqdwzaeiDC3?= =?us-ascii?Q?jJdt14R151sd8o+UgG94/UJmOW13A5ip8FCVxLB1WyUhIzuy2/jSbZlvDeq6?= =?us-ascii?Q?HSw2no39w+uUanvCYr1flbA5Q0kz+JdFKyeOW2g9IROqPKyzNmBWbfuuyt7M?= =?us-ascii?Q?6Gq68SsWQ8ZRDo7iYWl9wW6wb6HBAkWQZNh6l852t3jMzepvdq2P8M3LNRgf?= =?us-ascii?Q?hQy2OrblfXQIiWXSDoVlR+tef/xqHYuNf3CU2Pyg2VG+vDRhPn/3Q9NdOcZ+?= =?us-ascii?Q?1PRGaOMczDaMnmvX75wxZabECe9JwNeVapcg4RwKQSA+VGPUrwLdKbyrjrVx?= =?us-ascii?Q?V+NJ/uiqT06tnv13cpg5s12v1LWE6havULfslpDvyM5ienEo9GJ1/eHJzQG/?= =?us-ascii?Q?C36OAQ46cJuhMyTL5NqP/xe7Zkq5XFUJ8GLZ5Rz7dv8mUoFyJw0ouRZ+2R0R?= =?us-ascii?Q?5eXLIWPB13k3hthbHwE7fydq2ym7CftVdrGxA5Mzqvc4u85Kmas0pS2WqJiw?= =?us-ascii?Q?JX39qnNg/tUvfhka4x7cX625kDFr5jaxPcIyZKRUzquT9u0vB2/ZzLC5yIAc?= =?us-ascii?Q?Ymt69UXMcsOEMYZ3lXbSZEJhZgq/oBL45JR4v0P7tVyI/fnji/RNXEBVIZFw?= =?us-ascii?Q?RdL7cgIN/ZGX9Efi06g6eMr6nTRuyem/06iXlwISL1vSmXXtLJVNTDKbDdeu?= =?us-ascii?Q?tgKalw0tAaMHjdBFygfN/EqIMqR8Ces2mg36zEW4x9wW/8SBGLjqF0mcifOd?= =?us-ascii?Q?zlM0xkku6XDUYHRXbu2/E5Yv7OQ1a1hzy18gxY1eLfe9cZG4uVx8ogX95tb5?= =?us-ascii?Q?AVzFh2RshVIQ9TezBvccYD2HKNWsaAB0RgEeja1ol2XrBZhrlSNjXJ10Dhav?= =?us-ascii?Q?gpSfFCtDKBaeDeRpZAD85N4VY1YCjIwXjJHLZIHuWKw5u9CBRXfT36klLvUj?= =?us-ascii?Q?vN7qzcrIe80+wtufDJ9LT3yOPEQlzS/4enLMcz1kQo4b0HO/tOxZ5yGxCKhW?= =?us-ascii?Q?N35GPII1C7IDnnHigLe4NTJ8/8cV4ZiC0W49BnFe41q9ozPu0NWamrkN8mWM?= =?us-ascii?Q?lvkrNI6MFRPwWeA=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:44.7897 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1ca46e5d-e11e-43f0-3615-08dd5ff24dcb 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022570.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7321 Content-Type: text/plain; charset="utf-8" Restructure retbleed mitigation to use select/update/apply functions to create consistent vulnerability handling. The retbleed_update_mitigation() simplifies the dependency between spectre_v2 and retbleed. The command line options now directly select a preferred mitigation which simplifies the logic. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 180 ++++++++++++++++++------------------- 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4af342d226c8..80b554249d85 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -57,6 +57,8 @@ static void __init spectre_v1_select_mitigation(void); static void __init spectre_v1_apply_mitigation(void); static void __init spectre_v2_select_mitigation(void); static void __init retbleed_select_mitigation(void); +static void __init retbleed_update_mitigation(void); +static void __init retbleed_apply_mitigation(void); static void __init spectre_v2_user_select_mitigation(void); static void __init ssb_select_mitigation(void); static void __init l1tf_select_mitigation(void); @@ -184,11 +186,6 @@ void __init cpu_select_mitigations(void) /* Select the proper CPU mitigations before patching alternatives: */ spectre_v1_select_mitigation(); spectre_v2_select_mitigation(); - /* - * retbleed_select_mitigation() relies on the state set by - * spectre_v2_select_mitigation(); specifically it wants to know about - * spectre_v2=3Dibrs. - */ retbleed_select_mitigation(); /* * spectre_v2_user_select_mitigation() relies on the state set by @@ -216,12 +213,14 @@ void __init cpu_select_mitigations(void) * After mitigations are selected, some may need to update their * choices. */ + retbleed_update_mitigation(); mds_update_mitigation(); taa_update_mitigation(); mmio_update_mitigation(); rfds_update_mitigation(); =20 spectre_v1_apply_mitigation(); + retbleed_apply_mitigation(); mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); @@ -1072,6 +1071,7 @@ enum spectre_v2_mitigation spectre_v2_enabled __ro_af= ter_init =3D SPECTRE_V2_NONE; =20 enum retbleed_mitigation { RETBLEED_MITIGATION_NONE, + RETBLEED_MITIGATION_AUTO, RETBLEED_MITIGATION_UNRET, RETBLEED_MITIGATION_IBPB, RETBLEED_MITIGATION_IBRS, @@ -1079,14 +1079,6 @@ enum retbleed_mitigation { RETBLEED_MITIGATION_STUFF, }; =20 -enum retbleed_mitigation_cmd { - RETBLEED_CMD_OFF, - RETBLEED_CMD_AUTO, - RETBLEED_CMD_UNRET, - RETBLEED_CMD_IBPB, - RETBLEED_CMD_STUFF, -}; - static const char * const retbleed_strings[] =3D { [RETBLEED_MITIGATION_NONE] =3D "Vulnerable", [RETBLEED_MITIGATION_UNRET] =3D "Mitigation: untrained return thunk", @@ -1097,9 +1089,7 @@ static const char * const retbleed_strings[] =3D { }; =20 static enum retbleed_mitigation retbleed_mitigation __ro_after_init =3D - RETBLEED_MITIGATION_NONE; -static enum retbleed_mitigation_cmd retbleed_cmd __ro_after_init =3D - IS_ENABLED(CONFIG_MITIGATION_RETBLEED) ? RETBLEED_CMD_AUTO : RETBLEED_CMD= _OFF; + IS_ENABLED(CONFIG_MITIGATION_RETBLEED) ? RETBLEED_MITIGATION_AUTO : RETBL= EED_MITIGATION_NONE; =20 static int __ro_after_init retbleed_nosmt =3D false; =20 @@ -1116,15 +1106,15 @@ static int __init retbleed_parse_cmdline(char *str) } =20 if (!strcmp(str, "off")) { - retbleed_cmd =3D RETBLEED_CMD_OFF; + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; } else if (!strcmp(str, "auto")) { - retbleed_cmd =3D RETBLEED_CMD_AUTO; + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; } else if (!strcmp(str, "unret")) { - retbleed_cmd =3D RETBLEED_CMD_UNRET; + retbleed_mitigation =3D RETBLEED_MITIGATION_UNRET; } else if (!strcmp(str, "ibpb")) { - retbleed_cmd =3D RETBLEED_CMD_IBPB; + retbleed_mitigation =3D RETBLEED_MITIGATION_IBPB; } else if (!strcmp(str, "stuff")) { - retbleed_cmd =3D RETBLEED_CMD_STUFF; + retbleed_mitigation =3D RETBLEED_MITIGATION_STUFF; } else if (!strcmp(str, "nosmt")) { retbleed_nosmt =3D true; } else if (!strcmp(str, "force")) { @@ -1145,57 +1135,42 @@ early_param("retbleed", retbleed_parse_cmdline); =20 static void __init retbleed_select_mitigation(void) { - bool mitigate_smt =3D false; - - if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off()) - return; - - switch (retbleed_cmd) { - case RETBLEED_CMD_OFF: + if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off()) { + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; return; + } =20 - case RETBLEED_CMD_UNRET: - if (IS_ENABLED(CONFIG_MITIGATION_UNRET_ENTRY)) { - retbleed_mitigation =3D RETBLEED_MITIGATION_UNRET; - } else { + switch (retbleed_mitigation) { + case RETBLEED_MITIGATION_UNRET: + if (!IS_ENABLED(CONFIG_MITIGATION_UNRET_ENTRY)) { + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; pr_err("WARNING: kernel not compiled with MITIGATION_UNRET_ENTRY.\n"); - goto do_cmd_auto; } break; - - case RETBLEED_CMD_IBPB: + case RETBLEED_MITIGATION_IBPB: if (!boot_cpu_has(X86_FEATURE_IBPB)) { pr_err("WARNING: CPU does not support IBPB.\n"); - goto do_cmd_auto; - } else if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY)) { - retbleed_mitigation =3D RETBLEED_MITIGATION_IBPB; - } else { + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; + } else if (!IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY)) { pr_err("WARNING: kernel not compiled with MITIGATION_IBPB_ENTRY.\n"); - goto do_cmd_auto; + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; } break; - - case RETBLEED_CMD_STUFF: - if (IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING) && - spectre_v2_enabled =3D=3D SPECTRE_V2_RETPOLINE) { - if (boot_cpu_data.x86_vendor !=3D X86_VENDOR_INTEL) { - pr_err("WARNING: retbleed=3Dstuff only supported for Intel CPUs.\n"); - goto do_cmd_auto; - } - retbleed_mitigation =3D RETBLEED_MITIGATION_STUFF; - - } else { - if (IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING)) - pr_err("WARNING: retbleed=3Dstuff depends on spectre_v2=3Dretpoline\n"= ); - else - pr_err("WARNING: kernel not compiled with MITIGATION_CALL_DEPTH_TRACKI= NG.\n"); - - goto do_cmd_auto; + case RETBLEED_MITIGATION_STUFF: + if (!IS_ENABLED(CONFIG_MITIGATION_CALL_DEPTH_TRACKING)) { + pr_err("WARNING: kernel not compiled with MITIGATION_CALL_DEPTH_TRACKIN= G.\n"); + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; + } else if (boot_cpu_data.x86_vendor !=3D X86_VENDOR_INTEL) { + pr_err("WARNING: retbleed=3Dstuff only supported for Intel CPUs.\n"); + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; } break; + default: + break; + } =20 -do_cmd_auto: - case RETBLEED_CMD_AUTO: + if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_AUTO) { + /* Intel mitigation selected in retbleed_update_mitigation() */ if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD || boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON) { if (IS_ENABLED(CONFIG_MITIGATION_UNRET_ENTRY)) @@ -1203,18 +1178,65 @@ static void __init retbleed_select_mitigation(void) else if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY) && boot_cpu_has(X86_FEATURE_IBPB)) retbleed_mitigation =3D RETBLEED_MITIGATION_IBPB; + else + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; } + } +} =20 - /* - * The Intel mitigation (IBRS or eIBRS) was already selected in - * spectre_v2_select_mitigation(). 'retbleed_mitigation' will - * be set accordingly below. - */ +static void __init retbleed_update_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off()) + return; =20 - break; + if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_NONE) + goto out; + + /* + * retbleed=3Dstuff is only allowed on Intel. If stuffing can't be used + * then a different mitigation will be selected below. + */ + if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_STUFF) { + if (spectre_v2_enabled !=3D SPECTRE_V2_RETPOLINE) { + pr_err("WARNING: retbleed=3Dstuff depends on spectre_v2=3Dretpoline\n"); + retbleed_mitigation =3D RETBLEED_MITIGATION_AUTO; + } + } + /* + * Let IBRS trump all on Intel without affecting the effects of the + * retbleed=3D cmdline option except for call depth based stuffing + */ + if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { + switch (spectre_v2_enabled) { + case SPECTRE_V2_IBRS: + retbleed_mitigation =3D RETBLEED_MITIGATION_IBRS; + break; + case SPECTRE_V2_EIBRS: + case SPECTRE_V2_EIBRS_RETPOLINE: + case SPECTRE_V2_EIBRS_LFENCE: + retbleed_mitigation =3D RETBLEED_MITIGATION_EIBRS; + break; + default: + if (retbleed_mitigation !=3D RETBLEED_MITIGATION_STUFF) + pr_err(RETBLEED_INTEL_MSG); + } + /* If nothing has set the mitigation yet, default to NONE. */ + if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_AUTO) + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; } +out: + pr_info("%s\n", retbleed_strings[retbleed_mitigation]); +} + + +static void __init retbleed_apply_mitigation(void) +{ + bool mitigate_smt =3D false; =20 switch (retbleed_mitigation) { + case RETBLEED_MITIGATION_NONE: + return; + case RETBLEED_MITIGATION_UNRET: setup_force_cpu_cap(X86_FEATURE_RETHUNK); setup_force_cpu_cap(X86_FEATURE_UNRET); @@ -1264,28 +1286,6 @@ static void __init retbleed_select_mitigation(void) if (mitigate_smt && !boot_cpu_has(X86_FEATURE_STIBP) && (retbleed_nosmt || cpu_mitigations_auto_nosmt())) cpu_smt_disable(false); - - /* - * Let IBRS trump all on Intel without affecting the effects of the - * retbleed=3D cmdline option except for call depth based stuffing - */ - if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { - switch (spectre_v2_enabled) { - case SPECTRE_V2_IBRS: - retbleed_mitigation =3D RETBLEED_MITIGATION_IBRS; - break; - case SPECTRE_V2_EIBRS: - case SPECTRE_V2_EIBRS_RETPOLINE: - case SPECTRE_V2_EIBRS_LFENCE: - retbleed_mitigation =3D RETBLEED_MITIGATION_EIBRS; - break; - default: - if (retbleed_mitigation !=3D RETBLEED_MITIGATION_STUFF) - pr_err(RETBLEED_INTEL_MSG); - } - } - - pr_info("%s\n", retbleed_strings[retbleed_mitigation]); } =20 #undef pr_fmt @@ -1839,8 +1839,8 @@ static void __init spectre_v2_select_mitigation(void) =20 if (IS_ENABLED(CONFIG_MITIGATION_IBRS_ENTRY) && boot_cpu_has_bug(X86_BUG_RETBLEED) && - retbleed_cmd !=3D RETBLEED_CMD_OFF && - retbleed_cmd !=3D RETBLEED_CMD_STUFF && + retbleed_mitigation !=3D RETBLEED_MITIGATION_NONE && + retbleed_mitigation !=3D RETBLEED_MITIGATION_STUFF && boot_cpu_has(X86_FEATURE_IBRS) && boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { mode =3D SPECTRE_V2_IBRS; @@ -1989,7 +1989,7 @@ static void __init spectre_v2_select_mitigation(void) (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD || boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON)) { =20 - if (retbleed_cmd !=3D RETBLEED_CMD_IBPB) { + if (retbleed_mitigation !=3D RETBLEED_MITIGATION_IBPB) { setup_force_cpu_cap(X86_FEATURE_USE_IBPB_FW); pr_info("Enabling Speculation Barrier for firmware calls\n"); } --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2089.outbound.protection.outlook.com [40.107.95.89]) (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 40076235C0F for ; Mon, 10 Mar 2025 16:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.89 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624853; cv=fail; b=o05O2Tusg7G5aTGK6BxI5TGVYYawo4ybMR3CSuSeylq0EU17n6EYWEDWGq0bRJI+Hd2WHkUjIfjcd5ONhqP4vR/l/FakBb14FPtzyVmT3VbQzfrMocA86btaRVlPL6qi2Xy9JQf33IqYlZZkFWFR/OKjclMxKfmwI1byT9TcF4I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624853; c=relaxed/simple; bh=j4+08Eewc+sTdYqiW7Vj0/4Xm1mvENuuanjrX68MXJA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JvkXWoLqGnhT1psWGFHikWapVYdpN6jjA3ge0U8JjOEkOb8bPEL1zdubVA+ooVuCVYgTprBZBMgHR+GmMxwhH6CB0i2QkxzHiMuGsmXysyhVIGFA7e5gQEI/BbXYVnIJrq425hhzcKI88r0rAh/Ut/3rxohU55WrvCoBcQqywqo= 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=3EwvE581; arc=fail smtp.client-ip=40.107.95.89 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="3EwvE581" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rppOdwlGQ9mDxzyp2T0Kh99tUSkmuCgEcKP0RxQ0HF2vTIzGL+c0xlz1hoMWrBmFtRfZwnRLZWMASpo963bHsvSTnvuYd0/TIcv57lDI0EH1Bkgwk8iUWP1SIMkBJRWI3QqMigmjheWcblkDC0XmvqAjvs4YcmaMz+VlZilmRB9M+mfsRTYm7yDnmENPqOmLxCodMnHd/E5b5iljwyFgdXIimTCL2xbvs8B3HRHyjaXnAOPfy1scsJ0Kfc7v3iEeosgVcN0MKt6dYtxutB7H2CTw/QiAqPqDSRHxqPFyUprtlWZqU04ejnC64YomlBjF/eOKr0iXQ83GKnPpWoukUg== 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=i4Kr0XbhaXofcAFlXOfNV8seBC3xv6NbagxgoolXHwg=; b=K5DbhwZkPIJech9A2P1RUXgDqc2dtw27XhVBM/QT38acJhlD83KqMJCt6ERQlWUMTejaruIZ8kzIl4zplvzjbc+aS1KkRzow4hmodCFmpq9pwbPUJ+aq4lGkojCTmayYidPgo996npa4cfGV5njqTamE3gAMXBaNea6o1BKq7BhOOODM7WfimSaoFxFyJ0D5l/ExX77d9PsnUYVVpEfMzOmnzZzF8mNFXHgJXsGtcdo/2D/OZWoeycAlaWCl36cQ1onrpTbnc+IBIk8XQ4jCqw7wf9jIH+K/DNoD+LwaplU5lKM6ECF3mmGNFCxzhbly5aTjV2KstRmzmQuG1BTJaw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=i4Kr0XbhaXofcAFlXOfNV8seBC3xv6NbagxgoolXHwg=; b=3EwvE581PtekLmuh38wk8ZN8BynNcDy5vHtzycPupyvkLK6Hi/P2BU2FJjd85z7cDRHwa6LwUhn8TeiGCAdcBkHQ14mbb0K0YITtMi+us25JPIg7XAsJcsDL55rsg1+8Ri3T+4Rt+2EZGnSRMdcwL5mLIPQm4OhaGLgEvP/M1Ds= Received: from BN9PR03CA0084.namprd03.prod.outlook.com (2603:10b6:408:fc::29) by BY5PR12MB4212.namprd12.prod.outlook.com (2603:10b6:a03:202::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:46 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::75) by BN9PR03CA0084.outlook.office365.com (2603:10b6:408:fc::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:45 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:45 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:44 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 11/36] x86/bugs: Restructure spectre_v2_user mitigation Date: Mon, 10 Mar 2025 11:39:58 -0500 Message-ID: <20250310164023.779191-12-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|BY5PR12MB4212:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c674fcc-51a5-4db0-724b-08dd5ff24e73 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dMiTzv6Dxc/lDuFmdlM9z0woA5B8lH/jIcq0uv0W7VdYYSsc9MHdmNn3zink?= =?us-ascii?Q?qcEt8gYxdHdonP1ysUBccxgai3kV1oYIF3glL5f3pcFXSEPWDxmpiGdemw6s?= =?us-ascii?Q?M4iACEC34i1HfqjhwzFTI27GzHtsRoghfSpaJGBuuzUXpE3Rq2w2HthqgAoD?= =?us-ascii?Q?dm1uOGfeY/WO0Qi/xi+PDGgRXZNZf2ZTunag/LrF6qpF7N1UcyQGNYmbdsbn?= =?us-ascii?Q?XrRXAfUnsCVm4ILg2oNSisRF0rAOK+tdJW9PSWTpPcasuvrhtGr09M1TqkUv?= =?us-ascii?Q?UU4c4bcqtUbEIpSJIvGgpTJfSIjAnViYPYEeofU69upvSvM6YhVxIydDyZGd?= =?us-ascii?Q?QUf4W/HS70aaCdQDeojoPL1lpNV/oD5FGViVo42IFl4kSFm/bo5b3q7NwBop?= =?us-ascii?Q?vHq9hAjXpKIRsr7vS7KuykD84WsmZb11yL/UFFoyXrQ3lzmVxlgNajs4wfkT?= =?us-ascii?Q?ImlBKYCWErl626dRLS9eSZaAXuGo9s8wCXv5zUbzg7XB5FrftJwf4PZfHHUg?= =?us-ascii?Q?bfyuh3TIqULfch3yqoqz+jppGFeYmJh+W/eQLdNvNYAocU/TF7agd2tnA32s?= =?us-ascii?Q?6qOeBKSWXitO4Xxh3ZKXFL4h7DKZP9ZE5gEvquh/DTYlCLhii7mEsTyqo0/H?= =?us-ascii?Q?5+FNlj5QDM7riU94SKjqqq15Pzo01yQGZixEG435SG/kDZGeiT17jHOTgID5?= =?us-ascii?Q?sWnj31Cx7V85KnVRFRoqlwgWq1SEhGpsbcAnd3TCTJquJiciVQPDKGcuyqEh?= =?us-ascii?Q?RbKnVi8fva67IJFRPOVgj8pT5hVLXyon9+L5G5B9zWdf4D4HjGCtk4CTQnai?= =?us-ascii?Q?/BJlBOUA83Ss92FI2MTYeW6QVJHUhQGcgvnfv4H//Pz9FSkCH2sD8qlG2Mvy?= =?us-ascii?Q?1I7GvIV7pqLc/VPHyG0dM0Ldi0nTY9SURuKZmujVdkPzuPLIJ4f8UN+DR3zB?= =?us-ascii?Q?BcC3gW5K40Z6cNtBX5+EM7mF/5AP5TU1c8K+a24NOo3rxM/TpeLCsY+xoXQV?= =?us-ascii?Q?O1ne04OlJvOiV3ACH2/Rqv2+Yj3BCsMWNVPzsBmtpX4lB9GTdmb6W7n8DXx1?= =?us-ascii?Q?RbO6oUL/4lAKi33o8X7tonfXSHFTVLCSAnYKrlOyPGyXtby7Rvn0J7rBpnH2?= =?us-ascii?Q?ubGE4gX9Aawnr2U1DPBj4dxwQa0LNWKWavX34NnZeCCVdAa8k30B5Su863n6?= =?us-ascii?Q?tyUz+q3hakFWnnwc9EZmkpcUfqTfe6VTZwWcN0L3qSZkicMXiiYKrB5FdZ1l?= =?us-ascii?Q?fWJBFefpbhBH45sLhAf4Dp9whmUU3r571PpQXeapRLJ7PjMg3ot8lyWV/o8w?= =?us-ascii?Q?3AQeEvlw4qt/lKBSzrX1aIejQHQXFGml3GyHyoL0M/RU1nCfI7X2lH6YnEO0?= =?us-ascii?Q?pe756qc4yY9DG2rRujpAoRobrHZgG3Qny4UPc1Slixy70NK8WuAUdABFl6Ha?= =?us-ascii?Q?q2vEdN8kADjDQQjRmnnJ+ZwxxC89VsREwFqSoOYSmsoZ7bZWexTSVxs/8ERW?= =?us-ascii?Q?59WRZqFZlZKvYD8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:45.8922 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c674fcc-51a5-4db0-724b-08dd5ff24e73 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4212 Content-Type: text/plain; charset="utf-8" Restructure spectre_v2_user to use select/update/apply functions to create consistent vulnerability handling. The ibpb/stibp choices are first decided based on the spectre_v2_user command line but can be modified by the spectre_v2 command line option as well. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 152 +++++++++++++++++++++---------------- 1 file changed, 85 insertions(+), 67 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 80b554249d85..623a3a3d3008 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -60,6 +60,8 @@ static void __init retbleed_select_mitigation(void); static void __init retbleed_update_mitigation(void); static void __init retbleed_apply_mitigation(void); static void __init spectre_v2_user_select_mitigation(void); +static void __init spectre_v2_user_update_mitigation(void); +static void __init spectre_v2_user_apply_mitigation(void); static void __init ssb_select_mitigation(void); static void __init l1tf_select_mitigation(void); static void __init mds_select_mitigation(void); @@ -187,11 +189,6 @@ void __init cpu_select_mitigations(void) spectre_v1_select_mitigation(); spectre_v2_select_mitigation(); retbleed_select_mitigation(); - /* - * spectre_v2_user_select_mitigation() relies on the state set by - * retbleed_select_mitigation(); specifically the STIBP selection is - * forced for UNRET or IBPB. - */ spectre_v2_user_select_mitigation(); ssb_select_mitigation(); l1tf_select_mitigation(); @@ -214,6 +211,8 @@ void __init cpu_select_mitigations(void) * choices. */ retbleed_update_mitigation(); + /* spectre_v2_user_update_mitigation() depends on retbleed_mitigation */ + spectre_v2_user_update_mitigation(); mds_update_mitigation(); taa_update_mitigation(); mmio_update_mitigation(); @@ -221,6 +220,7 @@ void __init cpu_select_mitigations(void) =20 spectre_v1_apply_mitigation(); retbleed_apply_mitigation(); + spectre_v2_user_apply_mitigation(); mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); @@ -1365,6 +1365,8 @@ enum spectre_v2_mitigation_cmd { SPECTRE_V2_CMD_IBRS, }; =20 +static enum spectre_v2_mitigation_cmd spectre_v2_cmd __ro_after_init =3D S= PECTRE_V2_CMD_AUTO; + enum spectre_v2_user_cmd { SPECTRE_V2_USER_CMD_NONE, SPECTRE_V2_USER_CMD_AUTO, @@ -1403,31 +1405,19 @@ static void __init spec_v2_user_print_cond(const ch= ar *reason, bool secure) pr_info("spectre_v2_user=3D%s forced on command line.\n", reason); } =20 -static __ro_after_init enum spectre_v2_mitigation_cmd spectre_v2_cmd; - static enum spectre_v2_user_cmd __init spectre_v2_parse_user_cmdline(void) { - enum spectre_v2_user_cmd mode; char arg[20]; int ret, i; =20 - mode =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ? - SPECTRE_V2_USER_CMD_AUTO : SPECTRE_V2_USER_CMD_NONE; - - switch (spectre_v2_cmd) { - case SPECTRE_V2_CMD_NONE: + if (cpu_mitigations_off() || !IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2)) return SPECTRE_V2_USER_CMD_NONE; - case SPECTRE_V2_CMD_FORCE: - return SPECTRE_V2_USER_CMD_FORCE; - default: - break; - } =20 ret =3D cmdline_find_option(boot_command_line, "spectre_v2_user", arg, sizeof(arg)); if (ret < 0) - return mode; + return SPECTRE_V2_USER_CMD_AUTO; =20 for (i =3D 0; i < ARRAY_SIZE(v2_user_options); i++) { if (match_option(arg, ret, v2_user_options[i].option)) { @@ -1438,7 +1428,7 @@ spectre_v2_parse_user_cmdline(void) } =20 pr_err("Unknown user space protection option (%s). Switching to default\n= ", arg); - return mode; + return SPECTRE_V2_USER_CMD_AUTO; } =20 static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode) @@ -1446,10 +1436,10 @@ static inline bool spectre_v2_in_ibrs_mode(enum spe= ctre_v2_mitigation mode) return spectre_v2_in_eibrs_mode(mode) || mode =3D=3D SPECTRE_V2_IBRS; } =20 + static void __init spectre_v2_user_select_mitigation(void) { - enum spectre_v2_user_mitigation mode =3D SPECTRE_V2_USER_NONE; enum spectre_v2_user_cmd cmd; =20 if (!boot_cpu_has(X86_FEATURE_IBPB) && !boot_cpu_has(X86_FEATURE_STIBP)) @@ -1458,48 +1448,61 @@ spectre_v2_user_select_mitigation(void) cmd =3D spectre_v2_parse_user_cmdline(); switch (cmd) { case SPECTRE_V2_USER_CMD_NONE: - goto set_mode; + return; case SPECTRE_V2_USER_CMD_FORCE: - mode =3D SPECTRE_V2_USER_STRICT; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_STRICT; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_STRICT; break; case SPECTRE_V2_USER_CMD_AUTO: case SPECTRE_V2_USER_CMD_PRCTL: + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_PRCTL; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_PRCTL; + break; case SPECTRE_V2_USER_CMD_PRCTL_IBPB: - mode =3D SPECTRE_V2_USER_PRCTL; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_STRICT; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_PRCTL; break; case SPECTRE_V2_USER_CMD_SECCOMP: - case SPECTRE_V2_USER_CMD_SECCOMP_IBPB: if (IS_ENABLED(CONFIG_SECCOMP)) - mode =3D SPECTRE_V2_USER_SECCOMP; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_SECCOMP; else - mode =3D SPECTRE_V2_USER_PRCTL; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_PRCTL; + spectre_v2_user_stibp =3D spectre_v2_user_ibpb; + break; + case SPECTRE_V2_USER_CMD_SECCOMP_IBPB: + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_STRICT; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_PRCTL; break; } =20 - /* Initialize Indirect Branch Prediction Barrier */ - if (boot_cpu_has(X86_FEATURE_IBPB)) { - static_branch_enable(&switch_vcpu_ibpb); + /* + * At this point, an STIBP mode other than "off" has been set. + * If STIBP support is not being forced, check if STIBP always-on + * is preferred. + */ + if (spectre_v2_user_stibp !=3D SPECTRE_V2_USER_STRICT && + boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON)) + spectre_v2_user_stibp =3D SPECTRE_V2_USER_STRICT_PREFERRED; +} =20 - spectre_v2_user_ibpb =3D mode; - switch (cmd) { - case SPECTRE_V2_USER_CMD_NONE: - break; - case SPECTRE_V2_USER_CMD_FORCE: - case SPECTRE_V2_USER_CMD_PRCTL_IBPB: - case SPECTRE_V2_USER_CMD_SECCOMP_IBPB: - static_branch_enable(&switch_mm_always_ibpb); - spectre_v2_user_ibpb =3D SPECTRE_V2_USER_STRICT; - break; - case SPECTRE_V2_USER_CMD_PRCTL: - case SPECTRE_V2_USER_CMD_AUTO: - case SPECTRE_V2_USER_CMD_SECCOMP: - static_branch_enable(&switch_mm_cond_ibpb); - break; - } +static void __init spectre_v2_user_update_mitigation(void) +{ + bool smt_possible =3D IS_ENABLED(CONFIG_SMP); =20 - pr_info("mitigation: Enabling %s Indirect Branch Prediction Barrier\n", - static_key_enabled(&switch_mm_always_ibpb) ? - "always-on" : "conditional"); + if (!boot_cpu_has(X86_FEATURE_IBPB) && !boot_cpu_has(X86_FEATURE_STIBP)) + return; + + if (cpu_smt_control =3D=3D CPU_SMT_FORCE_DISABLED || + cpu_smt_control =3D=3D CPU_SMT_NOT_SUPPORTED) + smt_possible =3D false; + + /* The spectre_v2 cmd line can override spectre_v2_user options */ + if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_NONE) { + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_NONE; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_NONE; + } else if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_FORCE) { + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_STRICT; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_STRICT; } =20 /* @@ -1517,30 +1520,45 @@ spectre_v2_user_select_mitigation(void) if (!boot_cpu_has(X86_FEATURE_STIBP) || !cpu_smt_possible() || (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && - !boot_cpu_has(X86_FEATURE_AUTOIBRS))) + !boot_cpu_has(X86_FEATURE_AUTOIBRS))) { + spectre_v2_user_stibp =3D SPECTRE_V2_USER_NONE; return; + } =20 - /* - * At this point, an STIBP mode other than "off" has been set. - * If STIBP support is not being forced, check if STIBP always-on - * is preferred. - */ - if (mode !=3D SPECTRE_V2_USER_STRICT && - boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON)) - mode =3D SPECTRE_V2_USER_STRICT_PREFERRED; - - if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_UNRET || - retbleed_mitigation =3D=3D RETBLEED_MITIGATION_IBPB) { - if (mode !=3D SPECTRE_V2_USER_STRICT && - mode !=3D SPECTRE_V2_USER_STRICT_PREFERRED) + if (spectre_v2_user_stibp !=3D SPECTRE_V2_USER_NONE && + (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_UNRET || + retbleed_mitigation =3D=3D RETBLEED_MITIGATION_IBPB)) { + if (spectre_v2_user_stibp !=3D SPECTRE_V2_USER_STRICT && + spectre_v2_user_stibp !=3D SPECTRE_V2_USER_STRICT_PREFERRED) pr_info("Selecting STIBP always-on mode to complement retbleed mitigati= on\n"); - mode =3D SPECTRE_V2_USER_STRICT_PREFERRED; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_STRICT_PREFERRED; } + pr_info("%s\n", spectre_v2_user_strings[spectre_v2_user_stibp]); +} =20 - spectre_v2_user_stibp =3D mode; +static void __init spectre_v2_user_apply_mitigation(void) +{ + /* Initialize Indirect Branch Prediction Barrier */ + if (boot_cpu_has(X86_FEATURE_IBPB) && + spectre_v2_user_ibpb !=3D SPECTRE_V2_USER_NONE) { + static_branch_enable(&switch_vcpu_ibpb); =20 -set_mode: - pr_info("%s\n", spectre_v2_user_strings[mode]); + switch (spectre_v2_user_ibpb) { + case SPECTRE_V2_USER_STRICT: + static_branch_enable(&switch_mm_always_ibpb); + break; + case SPECTRE_V2_USER_PRCTL: + case SPECTRE_V2_USER_SECCOMP: + static_branch_enable(&switch_mm_cond_ibpb); + break; + default: + break; + } + + pr_info("mitigation: Enabling %s Indirect Branch Prediction Barrier\n", + static_key_enabled(&switch_mm_always_ibpb) ? + "always-on" : "conditional"); + } } =20 static const char * const spectre_v2_strings[] =3D { --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2078.outbound.protection.outlook.com [40.107.92.78]) (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 8A7162327A3 for ; Mon, 10 Mar 2025 16:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624852; cv=fail; b=RlHwMfoZ30GfNMoDfe4NZQyRNgRDZ6OObKBbM2sVIandKcu2g9dwiQo6gzZDYa9usbYNw0QeHW/XC80G73e1h52uApoCXN+8bZvbuzvp9wN7GBjIuiMaNAcpc7G4aDMiuBXIyzUBPgUPR6xDp+pNmWTWaDZzNGLZEUI9joyNg60= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624852; c=relaxed/simple; bh=K+C9pFOyPXiom1spo9M1vbjkCijPof2zjIDDOVYmBIQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E9ut8clM/ABxEwL4l6GKkb4D5rdfHc3BCbFkdGgkythRXAWlhYU7zNRRPyrtjuWa8W/uG0hFRl701cdVOxF6YJtoJRjaGhj2gcAMq2t1YMUYNLKy8FEkQWdAHbQgG7Z5mn9J0LviR4rymYZE6mCyg+NnFHN4vmJqv/D1x7Gt0DY= 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=41k2B+CJ; arc=fail smtp.client-ip=40.107.92.78 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="41k2B+CJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JBdHC/7Mlc51ClSyBvR0CABs/77FpHnZwpXvFW40OM6V2B14LVsYid8/cWW/5H/+sRfbLaOUUMQp5VE8L/F65EU3N+qIuHwp29U4N6zGAibUUf4nv6b5k/zw+7sDsvY8D/Iuw0sK7gZCdWPt+8zLr+Npt4CUHFCGmc9Sws9lCQdM23QwqUPugXw3DifFhj0F+LA0MxmrUGyMhVfqF0WBma7HwVnSdyF8dZMANVtb8jUALgSyTNaeKz9GkhOwlS2Hqz6nVGZ6hNzRYdbHU6+f+8NLAA+6YvZGEwWjab5cjg4/3BAh5D3RKC9tMQW/aZE4WPHPCXx3Gqr1szxtbH4Z5g== 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=0AP8inCusnZBj5jaZR+5reAtfSpdI8HjvSc5qr4S1Fo=; b=DWJ1yEP9+f/byYomgfkUo00mO2x5jdzEho+7+zDW8eaLliCj7REVMB8Vz8SWGqylrJQMe0jVYOav+J8DHefn8Dqe9BT104BQDV7Uc1NHoaNMpJ6v4rnrpOPIZgjcgD4jPiY7vTyf2ZrMtAq6KMczHn2bxbsc+RufXzvG54clrkoboMsxRJLfcFDwRt3WfxeZtVz+wWb2oTasKwFbGSVP0hRXr5aneGmjIqKedSXUWAqiyxO9aWTyF3pQ/uMsc+gS/fsKkUbVi3eG+nDZAQUZyLkTGAe1YRlTWLZf2UZzTH7vCCv7QPHzIdHhas7jF9pC4sZQFo84ImSy5A+sjSbCQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=0AP8inCusnZBj5jaZR+5reAtfSpdI8HjvSc5qr4S1Fo=; b=41k2B+CJ35O8rpk+Fbc87IiRfvb9WAA3NtW55N7ajbsSbcLTwjA1A3lcDK4ipgOwprV5wFoHrKe3xAg0HvJg6V3rqOe+7OmwTK4fvUi7Qt7QGdhK5bH0G5vZgHidV1JZ1O4EG2MFuSvcsevmA4SQIT3zqaSHQNud/jelyzoh2n8= Received: from BL1PR13CA0065.namprd13.prod.outlook.com (2603:10b6:208:2b8::10) by IA0PPF95ABFC125.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bdb) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:47 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:2b8:cafe::51) by BL1PR13CA0065.outlook.office365.com (2603:10b6:208:2b8::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:47 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:47 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:45 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 12/36] x86/bugs: Restructure bhi mitigation Date: Mon, 10 Mar 2025 11:39:59 -0500 Message-ID: <20250310164023.779191-13-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|IA0PPF95ABFC125:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fdd7e81-ac9e-4bbf-e7c5-08dd5ff24f1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JRnmutUYEfNHSKGX/7bbg3CwCWaTHkN+C9zvmhLyfP5iaIe1ESdvqwIyYH2U?= =?us-ascii?Q?MgvEaGs+c444+5671tNSVYB+1j5uS5Fe3ue6ZMDzoMstJAFKnyhivmohNvbF?= =?us-ascii?Q?p1mjBQFhU6WFF1GS52mj3tNLp8wdvRA+HNAmpz2zEUjmfjiQd/yZIO+LoeHq?= =?us-ascii?Q?J+iPVaiSNbHuHRR9bUnl/TxWEnaPB1EJUR+dHTYBdzi2UqUXHKSIlpoACxyW?= =?us-ascii?Q?iSycJVxh7T1+lzBVBN0oyzL9C2NgU216hnBX+ZKsCVexUzGeiUZD30XABfHY?= =?us-ascii?Q?CHPp/EGu1UA5TveJfOc7PAi+iApo45MS7/8x4EZs0cuzZULNaSD+UjX8/hhn?= =?us-ascii?Q?v3u8sr30QFbTSTwKthQRTqQXpr4WC1rKrVT8E7WLYqMqhYSfIYaV+q80oJEJ?= =?us-ascii?Q?aTag4HNzqzK6LK8ZWIHyRw1Tfu5BccjPJhJn7DZfYz+C00tG6KIYUcSDpRdX?= =?us-ascii?Q?RnfAMdp9juI86ILfXOVUGD1+1C6kPDHDIiuQSgQ/Y0vPn1DC+Djy2biH7mtg?= =?us-ascii?Q?dRyIhsydNb99+LdH7Bbp7B0Hq/Fkx5yOvA4TV1juPF25omzHX06J3Lz2MtVh?= =?us-ascii?Q?1rQLJPf1loYhE8/ZT6o0ZPE2sNqOeT38wn031NS6A9Hb2L9leX9okoN+7PQ8?= =?us-ascii?Q?GLLcreKdKlvdQ4lZB5EfU5J9rKr/zLlV9AUDzGLSHcg9SDbv3etwSZn4hj6+?= =?us-ascii?Q?DwlxeLJd04JMJfJqyQNi0znpN8+4bhP1u26rGEFcYtZXivRsyT1tUwaJ4WLe?= =?us-ascii?Q?2YNFyRDowD3WZPOtkfsvwEqbPXek123qfKVpY/CJoH3Nv/t4LhrPq42dqa4S?= =?us-ascii?Q?U21DsuzSYAcfJyHxRBUP0mAZfkZRn8ATmnqAbMh4cILE3hmagtnzcrK2OfPG?= =?us-ascii?Q?4jUSkJAG91vMnXK7ONqTCGT68ST/GXR4yO+NSXR9dxCPNy9MCs43zdFHrNdL?= =?us-ascii?Q?Av8dOW+LjPH3hSCIKGfRzliZsSxGb6E02Tk6qYxEUlA9Rhj7hZjw0zT4bzoj?= =?us-ascii?Q?xnJ7np56A73TQrmjnaQ3c5a2xe5tPpboHsmOqM/XGBypsk++IVW/kBmuh5JT?= =?us-ascii?Q?DTamu3UD9CfmPJZEojXP+P9RUz4vQo8uPLfNY+EneDzHotF43pm1HVpbaETe?= =?us-ascii?Q?IUQ3wYVDGMI6TlBL9yqMqyYjPZ/uxGWFW2TYNLHQ3zqvfCz/6UY9+RtQqCYx?= =?us-ascii?Q?ik3ZpnjgqYELLNlBkZwD4uOsjHE3m1u4Wr32b+aPZ4s2L/iWV7n5sjfl+pbR?= =?us-ascii?Q?3aBxdLq5qguIpBNmx4lTHmfgmJkAhuDxXqShGvc2cQD0ilr2cXpqDpk8WTC1?= =?us-ascii?Q?rVnl9Pfw7lzKgkGtGwwWK8BcDsCi5e0wEipgu1BplbZBrtHsPi6x37NIs6FC?= =?us-ascii?Q?8S+Em6Y2PH7sXI8YxTjLfUofjMQHYVy4XLb0WBhCFUcP/kUMofhpvGqlLGK+?= =?us-ascii?Q?DEusJnc14TTQpHv2fHd75SBKsOQee0KRKymGVOVp1uWyga8IaZ7bpH3FcDHe?= =?us-ascii?Q?/W3fS6WukGpSBK4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:47.0225 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fdd7e81-ac9e-4bbf-e7c5-08dd5ff24f1f 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF95ABFC125 Content-Type: text/plain; charset="utf-8" Restructure bhi mitigation to use select/apply functions to create consistent vulnerability handling. Define new AUTO mitigation for bhi. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 623a3a3d3008..96cb2ac70245 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -82,6 +82,8 @@ static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); static void __init gds_select_mitigation(void); static void __init gds_apply_mitigation(void); +static void __init bhi_select_mitigation(void); +static void __init bhi_apply_mitigation(void); =20 /* The base value of the SPEC_CTRL MSR without task-specific bits set */ u64 x86_spec_ctrl_base; @@ -205,6 +207,7 @@ void __init cpu_select_mitigations(void) */ srso_select_mitigation(); gds_select_mitigation(); + bhi_select_mitigation(); =20 /* * After mitigations are selected, some may need to update their @@ -227,6 +230,7 @@ void __init cpu_select_mitigations(void) rfds_apply_mitigation(); srbds_apply_mitigation(); gds_apply_mitigation(); + bhi_apply_mitigation(); } =20 /* @@ -1775,12 +1779,13 @@ static bool __init spec_ctrl_bhi_dis(void) =20 enum bhi_mitigations { BHI_MITIGATION_OFF, + BHI_MITIGATION_AUTO, BHI_MITIGATION_ON, BHI_MITIGATION_VMEXIT_ONLY, }; =20 static enum bhi_mitigations bhi_mitigation __ro_after_init =3D - IS_ENABLED(CONFIG_MITIGATION_SPECTRE_BHI) ? BHI_MITIGATION_ON : BHI_MITIG= ATION_OFF; + IS_ENABLED(CONFIG_MITIGATION_SPECTRE_BHI) ? BHI_MITIGATION_AUTO : BHI_MIT= IGATION_OFF; =20 static int __init spectre_bhi_parse_cmdline(char *str) { @@ -1801,6 +1806,15 @@ static int __init spectre_bhi_parse_cmdline(char *st= r) early_param("spectre_bhi", spectre_bhi_parse_cmdline); =20 static void __init bhi_select_mitigation(void) +{ + if (!boot_cpu_has(X86_BUG_BHI) || cpu_mitigations_off()) + bhi_mitigation =3D BHI_MITIGATION_OFF; + + if (bhi_mitigation =3D=3D BHI_MITIGATION_AUTO) + bhi_mitigation =3D BHI_MITIGATION_ON; +} + +static void __init bhi_apply_mitigation(void) { if (bhi_mitigation =3D=3D BHI_MITIGATION_OFF) return; @@ -1942,9 +1956,6 @@ static void __init spectre_v2_select_mitigation(void) mode =3D=3D SPECTRE_V2_RETPOLINE) spec_ctrl_disable_kernel_rrsba(); =20 - if (boot_cpu_has(X86_BUG_BHI)) - bhi_select_mitigation(); - spectre_v2_enabled =3D mode; pr_info("%s\n", spectre_v2_strings[mode]); =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2059.outbound.protection.outlook.com [40.107.94.59]) (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 43F97233D9D for ; Mon, 10 Mar 2025 16:40:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624856; cv=fail; b=g3FyN3HIAFSaLdNKczklI9Y2UADphRHv82bUItnJtkeueGlBWTaCOz8pOfF+sgvleu57En/ojoOUd68oRQLEQZKEX+HWh2c2Q8QiuFIRfOaOQLfUF2ljNc4JKp/6PQxUBX6lhYKClJ1sC6eSpb0WYUoBH6VSdb6NAkUf86cqBrE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624856; c=relaxed/simple; bh=M3Kf0E8Ybu3qZWiX1Si6DSUqe3u/jHNLsbw4piiMwWk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ruXdFIIM2nZaIRwPIAYnjgbl6OzYz5cnUfwINpIWJ7BsbOL3bmb1dV7zdKUs6vPW/ncM91T1wTx5NgnD4zwXPpnEPph+11We/teKpsJBADjoWmh8ax/MyA4VW9ngpuGAhdaOa5oJ6SsPP/FOJoThiX2jqG2sbv6ImO8VTnUD6YU= 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=h7nRGfP/; arc=fail smtp.client-ip=40.107.94.59 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="h7nRGfP/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I07gVrayjAoD8l+z0xEcM7vTKyWSmxMyD/1DWAvf+1wKuQClojN2vdpiXP0UrcblP48ft86aiQNBCICQOEZ4z3wrnpVdcy5DCT4+U/TZ+Yf4u/P3sr6+hINZ65jCaOgvSyfu+U2iueZRBOF3kwmlz6vdW1jBQEHaLu/GzCERfRzLN3eyhJmmmYAHziEBCe+XK9Sw9qudKdSZOCMy8u6mLI8BKW3MTTE8v5yLU0t55f2Xq7GwQehsoNVnS7lJb7SO5GGHMwzuxjB16o9wcs2qBjGkPUKtsk/0X65cWe2a7+Ow+R/7qTixlLhZBzXVWVSd+dAXZ0q+LOzHdR6KOFte0A== 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=rfplAb2bcB/J97WRvOLjcUZzrgTyAMusN+3AIYec1HU=; b=R5Z7gJeayG1ly3c2AwRDTjFebB0N5zP8WzDQ8xXNe129SMm6twO2SvchOhtkZk1os/8rybLFM+ns/ygmJxD+DlH4xK5EEUwhA/8ykMftbmYu4c022fMaCD6js/E92CjgFn//KqfOl52kJoGvl+Z7ypVupSwYSzz+ZBZiihRbHRz6sDMQnQy3+rBeT/Lb2IJ5ULqG0WlHn6h+gNyxi2LePVetxOVbOQ9gOzcBATOnfiDYyztie928rYCRlFI5xfLQKutGJPf/2hKkpWETMgdmsObaMy6bZbvEvPSMfR+jbIPwAoOITPD1NA1BmIYgAMGWQMSwPxiP/2Slh0kNPYvm5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=rfplAb2bcB/J97WRvOLjcUZzrgTyAMusN+3AIYec1HU=; b=h7nRGfP/+ZAum/e703dNa3cMbisqgMedirjfrtwprNl0yJVesMAlyW8MLvmHigjWsk2k3uLgq3V3mt2iKJCFrY0aDREp6/5hhG7TsX2L4PhZfOyAc2GkmYG7QEOTTjacn8AZiaJrEBABm80sVq5rI9dESNUD90IrwPGf0Sov6YE= Received: from BL1PR13CA0086.namprd13.prod.outlook.com (2603:10b6:208:2b8::31) by SN7PR12MB7452.namprd12.prod.outlook.com (2603:10b6:806:299::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:48 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:2b8:cafe::fb) by BL1PR13CA0086.outlook.office365.com (2603:10b6:208:2b8::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.18 via Frontend Transport; Mon, 10 Mar 2025 16:40:48 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:48 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:46 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 13/36] x86/bugs: Restructure spectre_v2 mitigation Date: Mon, 10 Mar 2025 11:40:00 -0500 Message-ID: <20250310164023.779191-14-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|SN7PR12MB7452:EE_ X-MS-Office365-Filtering-Correlation-Id: 00c96726-f10a-4ad8-2f6e-08dd5ff24fc9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fAn31o2WCkLlPTwFA6hSbEcwETtOsrZAQGeJZGdEfQQOplbJ9ogVP2aTC7oq?= =?us-ascii?Q?3FzQbWfQVnHjucv6C742vTOdJH899A0vDTzAhtxRr7aywsnWWs736hzr7n5r?= =?us-ascii?Q?0N9N6ie3q7C233gkOxWRWD17bhhTiGDQrjxJN/iqgHSG/LtT/G34uCMu+Wt5?= =?us-ascii?Q?V5T8VoxE3z84CZdE95K/Y1siyU6YKFRYWzPi8GMOJEfGksIS9NpTyGPZolqR?= =?us-ascii?Q?0j1+8LDG6TlM6C80KdyEYX5ZZlVJWvX8lzPtJ+3WXjmpDBi9cTetsYNnV10j?= =?us-ascii?Q?iJ6LPqOXppq52Ox5Wo97KQuMKjLFVye42QBecrE7+xyMiXk0R+kd6zRKJNlk?= =?us-ascii?Q?O2RDuxqPqif8TApx8d4lehCiA8qFKQ7wN5BvJg04ywtvuGqophPKQx1tDHPW?= =?us-ascii?Q?lw2gt9bq2K13Tdy/i8HlY2HlTVHaJa2ia3g2FrDdqhD0KLf6wiI30pE87N6T?= =?us-ascii?Q?si8KwA6tf2dDn+FKcb3Vgsv9DTHhRz6bWzIGqiQDMIBtGL496iGrupZQMTxK?= =?us-ascii?Q?tBpkp2isxAThIhIZxcEFnm4ItunWKR4ibWl4qFlLUPzlxxgeWOtmUlZZNsb8?= =?us-ascii?Q?skLgRutS2SjDjMfa1JopLPcaVTmHyMeWNh1OJogVAP9yYgeNiYabWWIx6Rds?= =?us-ascii?Q?tmGgLyv8dH7ZWH+3Y6A+ngsuaa6le5ADQIdJ71e+j0U9+pXVqACjOmP6FA/g?= =?us-ascii?Q?bE943dvQp+NTlzjcv7vO+RszBp3pmhypoKApeJOHHRLj2vq3sQcohaK7tVaH?= =?us-ascii?Q?y2YTOIeu1Q7J06v+xagdjj7sYAMFO7DmGWnuNulKLkjq2/61iB8Ja2kfVWCN?= =?us-ascii?Q?okjxLwnjqTDdwPdim90lUlIRmlAI32zjJjhZPVX0VhBCYv4XBlQUTwZAsNQF?= =?us-ascii?Q?3DUzLFlao3uE0+tYQpMpYAKBMRyo76Rwqfi9pL651RuAnG8HM4G9hCZDscAV?= =?us-ascii?Q?DxuR5bMIddLyJYPVs2Su3gxpXY9fR+bpuDanW83KKS4BSHxS9ojKqgT3YlWw?= =?us-ascii?Q?FsLF9OviU31wCSlem2UCzIHTCiQFRkT6LBJXxTYhQUXUQXW78GkcHOafqI9k?= =?us-ascii?Q?SH0fiJN1p3QwhUptO9OwEyWA+WX0HXcx4tJtiufKSCJSDyv86C4tiwXP44Cz?= =?us-ascii?Q?w8N6olt8GbPqjq3C4n1HRz9xCtwBo9S2y/GUTWY7HXCaIKwHJbWpy0mRDpv+?= =?us-ascii?Q?CZYHEMt5CPXL2qAFO8ei0WIPoc2sWonAU6ei9of9dvbJqx+yLkIwqqjD0l1u?= =?us-ascii?Q?datAgcGtgcliG4bIiWFtxSVwAO2YoU/NxaiQjqX2yp7q+si+N8fh3M5QiHYR?= =?us-ascii?Q?wuR2ffPxyRkOKGnM8+sftHzkPXe0F3dlYvWqB8eDfUFiQqd9b6j5RnXsFrju?= =?us-ascii?Q?UHEneklV5AzeLcZA8PuHQRj3f6RfO1/DWvA87cySYbDcEnHCeS2ZsfdKTC7b?= =?us-ascii?Q?7yFpjXsi9OIj9w6pN+/EU/lFLCTE8ON2gW+VjfkFDNqMt8SD0+DyZVY9vZdd?= =?us-ascii?Q?w84ZTQF82xw4H7g=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:48.1162 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 00c96726-f10a-4ad8-2f6e-08dd5ff24fc9 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7452 Content-Type: text/plain; charset="utf-8" Restructure spectre_v2 to use select/update/apply functions to create consistent vulnerability handling. The spectre_v2 mitigation may be updated based on the selected retbleed mitigation. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 79 +++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 96cb2ac70245..b4a72ddf159c 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -56,6 +56,8 @@ static void __init spectre_v1_select_mitigation(void); static void __init spectre_v1_apply_mitigation(void); static void __init spectre_v2_select_mitigation(void); +static void __init spectre_v2_update_mitigation(void); +static void __init spectre_v2_apply_mitigation(void); static void __init retbleed_select_mitigation(void); static void __init retbleed_update_mitigation(void); static void __init retbleed_apply_mitigation(void); @@ -212,7 +214,12 @@ void __init cpu_select_mitigations(void) /* * After mitigations are selected, some may need to update their * choices. + * + * Note that retbleed_update_mitigation() relies on the state set by + * spectre_v2_update_mitigation(); specifically it wants to know about + * spectre_v2=3Dibrs. */ + spectre_v2_update_mitigation(); retbleed_update_mitigation(); /* spectre_v2_user_update_mitigation() depends on retbleed_mitigation */ spectre_v2_user_update_mitigation(); @@ -222,6 +229,7 @@ void __init cpu_select_mitigations(void) rfds_update_mitigation(); =20 spectre_v1_apply_mitigation(); + spectre_v2_apply_mitigation(); retbleed_apply_mitigation(); spectre_v2_user_apply_mitigation(); mds_apply_mitigation(); @@ -1847,18 +1855,18 @@ static void __init bhi_apply_mitigation(void) =20 static void __init spectre_v2_select_mitigation(void) { - enum spectre_v2_mitigation_cmd cmd =3D spectre_v2_parse_cmdline(); enum spectre_v2_mitigation mode =3D SPECTRE_V2_NONE; + spectre_v2_cmd =3D spectre_v2_parse_cmdline(); =20 /* * If the CPU is not affected and the command line mode is NONE or AUTO * then nothing to do. */ if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2) && - (cmd =3D=3D SPECTRE_V2_CMD_NONE || cmd =3D=3D SPECTRE_V2_CMD_AUTO)) + (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_NONE || spectre_v2_cmd =3D=3D S= PECTRE_V2_CMD_AUTO)) return; =20 - switch (cmd) { + switch (spectre_v2_cmd) { case SPECTRE_V2_CMD_NONE: return; =20 @@ -1869,16 +1877,6 @@ static void __init spectre_v2_select_mitigation(void) break; } =20 - if (IS_ENABLED(CONFIG_MITIGATION_IBRS_ENTRY) && - boot_cpu_has_bug(X86_BUG_RETBLEED) && - retbleed_mitigation !=3D RETBLEED_MITIGATION_NONE && - retbleed_mitigation !=3D RETBLEED_MITIGATION_STUFF && - boot_cpu_has(X86_FEATURE_IBRS) && - boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { - mode =3D SPECTRE_V2_IBRS; - break; - } - mode =3D spectre_v2_select_retpoline(); break; =20 @@ -1912,10 +1910,32 @@ static void __init spectre_v2_select_mitigation(voi= d) break; } =20 - if (mode =3D=3D SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled()) + spectre_v2_enabled =3D mode; +} + +static void __init spectre_v2_update_mitigation(void) +{ + if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_AUTO) { + if (IS_ENABLED(CONFIG_MITIGATION_IBRS_ENTRY) && + boot_cpu_has_bug(X86_BUG_RETBLEED) && + retbleed_mitigation !=3D RETBLEED_MITIGATION_NONE && + retbleed_mitigation !=3D RETBLEED_MITIGATION_STUFF && + boot_cpu_has(X86_FEATURE_IBRS) && + boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) { + spectre_v2_enabled =3D SPECTRE_V2_IBRS; + } + } + + if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2) && !cpu_mitigations_off()) + pr_info("%s\n", spectre_v2_strings[spectre_v2_enabled]); +} + +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(mode)) { + if (spectre_v2_in_ibrs_mode(spectre_v2_enabled)) { if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) { msr_set_bit(MSR_EFER, _EFER_AUTOIBRS); } else { @@ -1924,8 +1944,10 @@ static void __init spectre_v2_select_mitigation(void) } } =20 - switch (mode) { + switch (spectre_v2_enabled) { case SPECTRE_V2_NONE: + return; + case SPECTRE_V2_EIBRS: break; =20 @@ -1951,14 +1973,11 @@ static void __init spectre_v2_select_mitigation(voi= d) * JMPs gets protection against BHI and Intramode-BTI, but RET * prediction from a non-RSB predictor is still a risk. */ - if (mode =3D=3D SPECTRE_V2_EIBRS_LFENCE || - mode =3D=3D SPECTRE_V2_EIBRS_RETPOLINE || - mode =3D=3D SPECTRE_V2_RETPOLINE) + if (spectre_v2_enabled =3D=3D SPECTRE_V2_EIBRS_LFENCE || + spectre_v2_enabled =3D=3D SPECTRE_V2_EIBRS_RETPOLINE || + spectre_v2_enabled =3D=3D SPECTRE_V2_RETPOLINE) spec_ctrl_disable_kernel_rrsba(); =20 - spectre_v2_enabled =3D mode; - pr_info("%s\n", spectre_v2_strings[mode]); - /* * If Spectre v2 protection has been enabled, fill the RSB during a * context switch. In general there are two types of RSB attacks @@ -2000,7 +2019,7 @@ static void __init spectre_v2_select_mitigation(void) setup_force_cpu_cap(X86_FEATURE_RSB_CTXSW); pr_info("Spectre v2 / SpectreRSB mitigation: Filling RSB on context switc= h\n"); =20 - spectre_v2_determine_rsb_fill_type_at_vmexit(mode); + spectre_v2_determine_rsb_fill_type_at_vmexit(spectre_v2_enabled); =20 /* * Retpoline protects the kernel, but doesn't protect firmware. IBRS @@ -2008,10 +2027,10 @@ static void __init spectre_v2_select_mitigation(voi= d) * firmware calls only when IBRS / Enhanced / Automatic IBRS aren't * otherwise enabled. * - * Use "mode" to check Enhanced IBRS instead of boot_cpu_has(), because - * the user might select retpoline on the kernel command line and if - * the CPU supports Enhanced IBRS, kernel might un-intentionally not - * enable IBRS around firmware calls. + * Use "spectre_v2_enabled" to check Enhanced IBRS instead of + * boot_cpu_has(), because the user might select retpoline on the kernel + * command line and if the CPU supports Enhanced IBRS, kernel might + * un-intentionally not enable IBRS around firmware calls. */ if (boot_cpu_has_bug(X86_BUG_RETBLEED) && boot_cpu_has(X86_FEATURE_IBPB) && @@ -2023,13 +2042,11 @@ static void __init spectre_v2_select_mitigation(voi= d) pr_info("Enabling Speculation Barrier for firmware calls\n"); } =20 - } else if (boot_cpu_has(X86_FEATURE_IBRS) && !spectre_v2_in_ibrs_mode(mod= e)) { + } else if (boot_cpu_has(X86_FEATURE_IBRS) && + !spectre_v2_in_ibrs_mode(spectre_v2_enabled)) { setup_force_cpu_cap(X86_FEATURE_USE_IBRS_FW); pr_info("Enabling Restricted Speculation for firmware calls\n"); } - - /* Set up IBPB and STIBP depending on the general spectre V2 command */ - spectre_v2_cmd =3D cmd; } =20 static void update_stibp_msr(void * __unused) --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2059.outbound.protection.outlook.com [40.107.237.59]) (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 39BAA236A74 for ; Mon, 10 Mar 2025 16:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624855; cv=fail; b=ON1tu5621iMMa2yETvk4FatziFgxEQgM6ak9+oKrlecH2bQS6W/xELq8f+Ttmax9ga+vAXx4NxgdW540ThAwQC3jW4/uwzs2SmsP7VumE53BGgRuDNmIQ3nKZWkcpe34ML1eNifacN6UzgH6tiQbOpIrR3LkKx2I14xPQrxFxhs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624855; c=relaxed/simple; bh=/3YMrsYXFPvo9gUBWuPtdtDKY8Z8dYm4F+B4RUAScPo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iMigT4w6u48NaGLRMXfTYiWYG0Pfm1u/x3NWDnf1xmIgNHdBtB1wyGiVmfLY9ocQTPbh259FNq5dP8ifziBBGVqK2Ar2aArwEqcFUn6s+fk1sOtdt4SZmlgTEQ/qWxo8WbW7Gy1ZP6wI/kRctGiR2J8bKLIvsFv0DVoPid0O2i4= 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=wFwD/QCZ; arc=fail smtp.client-ip=40.107.237.59 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="wFwD/QCZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mOUBJZYNzwLfYDdS8d5zYC+KQtju/3+BebNL8RQEHngxC8CaQuHpzWzfY1Ar9He/ZDbp+Fy9+FbnN+0Qg0r9wjI+Ihl6K6el4physiRYyHHbUiAgHO7K4HvUJe4HF1TDkImDzSSSQoa5uof3akAputYSnMG3keEBBTBHm9HesyRu4+TnQGtnH2QKeWaiFEkiYGGZttm88sg0c2VIRa188CanYVTn7yuttRWkkME/BrIyk5Y8Lz68q7ag6ljc8d2iQAcl0sPVO4ubxQwW7mZaoQxqWaZa8+j8xVhrvwA5TR1p3JGnnQfZ0AIplfJNt5gJNFOZGYGNYSBk0wG4OJk+Vw== 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=tGaPLSrwlTZrpOxd2lUJppwe8HyLp2KuMg/kifGa1jg=; b=de59ABDaqw1xnq/Fl4z/g8gUy+mm+jJ4tQaCllLvEA2KIRAn9nEMqzmi4goKCdgd5TQql9utCQQ3CNGIfXHg8UWslq4gc95sL0QjI0Nry0szJX4kOJ2psffA7hS6sKABTAYhJhqk8X40qm3NItqcm0CMN6gv6s14iub/rU5NZ3flQ3EMtotDEhNbMGOtbtyK8PtucCqttINvA4xCzdj3+uvqHYk9IXNep2nnRQJaLCz0Am9xT3b8/KKclR0cXuJWBoJujfGUcR7cbGJnVCC7JEz03CMfQjWDL7KW42unEifs4tfv3a+ipSXuclyyVX9Hm+ipS+hzpkpFwHh0bzpVxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=tGaPLSrwlTZrpOxd2lUJppwe8HyLp2KuMg/kifGa1jg=; b=wFwD/QCZ4x5qIJqm6IDlrimtAq9I9aNto9l4u/rhkPrygdMXCJ+g5MBwj7F3dulIYIV6yQ3BA1yJoIaREHMK5+uBySzCdh6Q9MCxR1MxXBPbWIV3Y0CsSBZ5AdNF5tJFMMSIZChmUmLJZQhrH39QyFwrndPZefSKsLYiF6pvWzc= Received: from BN9PR03CA0782.namprd03.prod.outlook.com (2603:10b6:408:13f::7) by CH2PR12MB4070.namprd12.prod.outlook.com (2603:10b6:610:ae::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:49 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:13f:cafe::2a) by BN9PR03CA0782.outlook.office365.com (2603:10b6:408:13f::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:49 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:49 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:47 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 14/36] x86/bugs: Restructure ssb mitigation Date: Mon, 10 Mar 2025 11:40:01 -0500 Message-ID: <20250310164023.779191-15-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|CH2PR12MB4070:EE_ X-MS-Office365-Filtering-Correlation-Id: 135816dd-3d15-4bd0-4de3-08dd5ff2506d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Or3/jHcm+qwaNys0fM42TkzPGbZ+n//CuSJcn/5xeRvw5GBkeH2Tf4yd2RE7?= =?us-ascii?Q?3K26L2C7+QNDWkILrnNP48YmipjGds8b1BqXWyc/EPH+Tebjg4+kaSg6VCe6?= =?us-ascii?Q?Pbk4o3eXxLOT89SBmFLJcowH0okEythG0Q3yMD+HqzKFp7iTVKgiVx4TMLi8?= =?us-ascii?Q?W2pmbtsizdZIF0gxm74+yCIr9uQ/3j94OrDUefEd4KfigQPFamAcuYc8s+Q4?= =?us-ascii?Q?KAk0KZLEEoqko3yP47Zd96ihIsXiMGzD9lRnMxHRL9tA/22oRF0JuxFxlPD/?= =?us-ascii?Q?YbcnxdWmujXpPMGAIgsFNkiNKAdUUDHuHJqvgDCddCXcsmsK0hvIFNl2BcAc?= =?us-ascii?Q?Uzt98Uhv4b7jX12j27I7yhX0cKhUnaHpRggJeU6zW4g2LHc2uxzSNvY9luib?= =?us-ascii?Q?ZbQtAw3VC7eOzXmQwnt3dzVS7YLrsnYtUqZH+Az3EIx1jBhAAdV/mm7uabZ2?= =?us-ascii?Q?mmPoazT7ioMontfxEQZdUy/1aL7Xl39K/uOH/SuccupJtfi+HwDiFz3/Bi0W?= =?us-ascii?Q?RYHN8/wparHopErXKkUDw0eiRuokJTknIwaimBFRJ5gRO2dfVzcQKjPJdADC?= =?us-ascii?Q?PRLANtNtIeZNzaTVDqvGcg04v7dXA3UEQAOAW9d7EVxpuZURmt5DZC4ZgAGE?= =?us-ascii?Q?4Ex/V34TmpWScNERWWT8ndzpD67qHvVEZlFzzvc+O4VggiubzcmhNVA1SSYo?= =?us-ascii?Q?/qf/rN+/bXMm1JMx+LjYPHPCBnwtkLNYJomVFoYhq+gwh0mkEN6ExJcN4eIs?= =?us-ascii?Q?3CgjyXQ0yxsv83TwQeaQSuIKEl9EYpz9QKGjCJBPQRd7qYYxvCnAeIdtKOiO?= =?us-ascii?Q?VdAK0dNAI/BVntpbZlFL1V8M1B4IflgreTItuIRoRd2fKTTvQXeCmce1uYJp?= =?us-ascii?Q?uK+T5l+S16v8qpEx1v6eUY50sUuqzjucKpRkHM90/io1z9FD51RGEGm6X6Ji?= =?us-ascii?Q?QMCEIOd3BTjhIEcwta/IsPfseQkC4inC9yYb7oKRGbqmNqwG2DmqUz+mGtej?= =?us-ascii?Q?AKmqB7Xbg1KegX0NGiv0RaNrH5p21bApRoWfE034Ln+WCusfNtJx3xz2L9Sf?= =?us-ascii?Q?xbUunZiZhHS1hdCvrzGTNamEHg2VKqXZE5yUdXLBI4GtizhfDnhA2jilNGxh?= =?us-ascii?Q?wINc1r3GqbeK+/qgNLVin7TAmNHsV/1icamcJgiB9szC66LLWWIptO2VvaMC?= =?us-ascii?Q?knvK80bZ9FZOPgOXbm/mMgUJ0eDwgvOUt2OwAGuzW/pqveXKFllPiSI4i6/P?= =?us-ascii?Q?L4t9fO3FxOApkbRUHrCqTiR2TaKJJyglrALPXqDFnRiWTF8tTdGSQyxhSzxB?= =?us-ascii?Q?2kGN95S+cgeQgz16i2f6vnB8zJJVedhZcuO0SmtejKOenI18+7rlQsGyPJGw?= =?us-ascii?Q?mlNFEt2VAEWWckMRdXz7pEelxgr99teCelVAfBpLO8wjD+kl4yHsKq3f2ZaD?= =?us-ascii?Q?k9WUzljg2SrTbcN3ibH/5DIfns5ekks4Yh2cZddPPjabF9Khpv6MBsjfBnpt?= =?us-ascii?Q?g6tnARKQbieRGlM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:49.2074 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 135816dd-3d15-4bd0-4de3-08dd5ff2506d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4070 Content-Type: text/plain; charset="utf-8" Restructure ssb to use select/apply functions to create consistent vulnerability handling. Remove __ssb_select_mitigation() and split the functionality between the select/apply functions. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index b4a72ddf159c..1d77747e0f74 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -65,6 +65,7 @@ static void __init spectre_v2_user_select_mitigation(void= ); static void __init spectre_v2_user_update_mitigation(void); static void __init spectre_v2_user_apply_mitigation(void); static void __init ssb_select_mitigation(void); +static void __init ssb_apply_mitigation(void); static void __init l1tf_select_mitigation(void); static void __init mds_select_mitigation(void); static void __init mds_update_mitigation(void); @@ -232,6 +233,7 @@ void __init cpu_select_mitigations(void) spectre_v2_apply_mitigation(); retbleed_apply_mitigation(); spectre_v2_user_apply_mitigation(); + ssb_apply_mitigation(); mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); @@ -2235,19 +2237,18 @@ static enum ssb_mitigation_cmd __init ssb_parse_cmd= line(void) return cmd; } =20 -static enum ssb_mitigation __init __ssb_select_mitigation(void) +static void ssb_select_mitigation(void) { - enum ssb_mitigation mode =3D SPEC_STORE_BYPASS_NONE; enum ssb_mitigation_cmd cmd; =20 if (!boot_cpu_has(X86_FEATURE_SSBD)) - return mode; + goto out; =20 cmd =3D ssb_parse_cmdline(); if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS) && (cmd =3D=3D SPEC_STORE_BYPASS_CMD_NONE || cmd =3D=3D SPEC_STORE_BYPASS_CMD_AUTO)) - return mode; + return; =20 switch (cmd) { case SPEC_STORE_BYPASS_CMD_SECCOMP: @@ -2256,28 +2257,35 @@ static enum ssb_mitigation __init __ssb_select_miti= gation(void) * enabled. */ if (IS_ENABLED(CONFIG_SECCOMP)) - mode =3D SPEC_STORE_BYPASS_SECCOMP; + ssb_mode =3D SPEC_STORE_BYPASS_SECCOMP; else - mode =3D SPEC_STORE_BYPASS_PRCTL; + ssb_mode =3D SPEC_STORE_BYPASS_PRCTL; break; case SPEC_STORE_BYPASS_CMD_ON: - mode =3D SPEC_STORE_BYPASS_DISABLE; + ssb_mode =3D SPEC_STORE_BYPASS_DISABLE; break; case SPEC_STORE_BYPASS_CMD_AUTO: case SPEC_STORE_BYPASS_CMD_PRCTL: - mode =3D SPEC_STORE_BYPASS_PRCTL; + ssb_mode =3D SPEC_STORE_BYPASS_PRCTL; break; case SPEC_STORE_BYPASS_CMD_NONE: break; } =20 +out: + if (boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS)) + pr_info("%s\n", ssb_strings[ssb_mode]); +} + +static void __init ssb_apply_mitigation(void) +{ /* * We have three CPU feature flags that are in play here: * - X86_BUG_SPEC_STORE_BYPASS - CPU is susceptible. * - X86_FEATURE_SSBD - CPU is able to turn off speculative store bypass * - X86_FEATURE_SPEC_STORE_BYPASS_DISABLE - engage the mitigation */ - if (mode =3D=3D SPEC_STORE_BYPASS_DISABLE) { + if (ssb_mode =3D=3D SPEC_STORE_BYPASS_DISABLE) { setup_force_cpu_cap(X86_FEATURE_SPEC_STORE_BYPASS_DISABLE); /* * Intel uses the SPEC CTRL MSR Bit(2) for this, while AMD may @@ -2291,16 +2299,6 @@ static enum ssb_mitigation __init __ssb_select_mitig= ation(void) update_spec_ctrl(x86_spec_ctrl_base); } } - - return mode; -} - -static void ssb_select_mitigation(void) -{ - ssb_mode =3D __ssb_select_mitigation(); - - if (boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS)) - pr_info("%s\n", ssb_strings[ssb_mode]); } =20 #undef pr_fmt --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2044.outbound.protection.outlook.com [40.107.100.44]) (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 DAC2D237172 for ; Mon, 10 Mar 2025 16:40:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624855; cv=fail; b=jsE7wd4p3jKvFxrKJMTzH+nqebgDTRSfdo9aKei1km6In1g7bdR1zJJuA3y3GLkuTgqzi7K1LpdLMnaoNVHI9bbSlDVeJZpXZf0TiJToQcRzSV4BBWebzgbNzX5WoDZDn/PbphIs8K+EAu+GlVI8YdPFtP2nqXyW/rVrpx2HC5I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624855; c=relaxed/simple; bh=ivUSLRGA6C/t7YbqNEPMdpHlElsxdHLCoxrXyVZAP5M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E0JxZi9t4FwScSWOH4Iry44zZ9jt8BZOffyElweS5We8Qs5G9oQqxqAVIFCdjF3ReXIHkLSCvcpGA7Lkm7nGSXn9ZIsOs/MX46Rt3PjHcAEYQllfYaNNrfr6Vip6N+UMLT2sbv8XTLgH4KTHtP8yiEXOPlrkT3qH8txCJ3dI/1s= 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=hRYhMVCw; arc=fail smtp.client-ip=40.107.100.44 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="hRYhMVCw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NPOR/X76G9fxaUmRwCZNCs0AjwQwHXrrzacckI4xY431nQEV2r7VpJQflkY0W4qUOdNijObe9AAYNV9Ar12xYZFIo9tVVHrF873Hak1tQBLOeY2ITtEX/nXBj6ob4qmazjUy+Vhvo7r5tXvb+0KMu2EGekLKBRcLvlVT8n+gjIzS9ScrzDbT5pwHZhihGsuB7JwXFATG9duz7oT+dYVQ6DVmsLUHu+PjPZZbtetQgCueO1DTivNJYP/mSsDZHLZf3M2YP/9oKNMnpHCt/leDxURn5PgYuAjc2u0Q5484XWPT3y8hc8HG9HLSitU1aEt8+njntHacr03ZcIfhGk/P0A== 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=4ihEGZgkD5kRO7O/7c1QZIwoWCGTYLZIGhDir05d4MI=; b=C6D0CRpDk9lv8E0gDfL8qqJNVfBZC/6knC+SIpGvWHmNzOcHMLG9FdkRHRUi0pxUK9uGzbivH7bihHRj6xKR8qg2rYbFUBFUKYyfqclFyIEdOFspEx18nAdZqOMd2cB0ukhGqZl23Hh3aA9kuWy8fJ6MoU5DSGXnUxsXdLFDfhlMXkSPTj5ha0qN9li2XWeBsJg8VGiSJFSmRlwVcybtBJ2GlH+Z47LiqV7zgzgTfk2AaXxdOMwgq9jpN4X3yDjFkNUBuf3zZcXvq0CRAR9XKkFnb4IKnp2TPXyujbMgaq6TnUxS7XKMtsU235HKtSB+c1cfSEQ/uNKKq9DNMJT+7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=4ihEGZgkD5kRO7O/7c1QZIwoWCGTYLZIGhDir05d4MI=; b=hRYhMVCwmH29Y4YozJvIQHaH3xMbWpTyjTus2CCUoZWRZO5JxnHZXcE0RbXm4T+/mbmQL0bb50p5r9APeq0BDm2q2nv9rlznydeH9k87HToCKF8dPMXQcvRP7ugnBYNbbLsRz/8iSgR/gZT5Ab9Q8QRikGwOQLop2MFap53PmhI= Received: from BL1PR13CA0082.namprd13.prod.outlook.com (2603:10b6:208:2b8::27) by IA0PPF12042BF6F.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bc8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.19; Mon, 10 Mar 2025 16:40:50 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:2b8:cafe::f8) by BL1PR13CA0082.outlook.office365.com (2603:10b6:208:2b8::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.17 via Frontend Transport; Mon, 10 Mar 2025 16:40:50 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:50 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:48 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 15/36] x86/bugs: Restructure l1tf mitigation Date: Mon, 10 Mar 2025 11:40:02 -0500 Message-ID: <20250310164023.779191-16-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|IA0PPF12042BF6F:EE_ X-MS-Office365-Filtering-Correlation-Id: 4dc71f47-69e0-476a-96fa-08dd5ff25114 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wiCuAkqGFLM/1YvE3b846VnbcXRyGQ2i+f9XdoOE0JE/fiJuIKhJfzMYHDDi?= =?us-ascii?Q?7WSeV1GENZEUvE9KO4hIvKLnwKYwILAfHBeFUSHr482eNBSirndvNRCHoy9U?= =?us-ascii?Q?syc9lCcBwHMyN3DoXQ3H9wC9YZPVAZeukqc14igyx1kOF2y8xFPyJcRp2azG?= =?us-ascii?Q?p7k9Y5RsAg5xfSDufA/cXf5oW0CE451sS5dQz/cn7DZ1+rvojpsdnvBEPHBi?= =?us-ascii?Q?2ZgFKPE0VdqvN2jT8I9cdP+dx0H8QSEg8CICN0ehReN0DH19g31tsrkpaWhC?= =?us-ascii?Q?UE1sO4AHsl/vZhijBkWis3HbSmsjVVD+7LaQv4LyTUCWuWjuxdAMrl32h3DX?= =?us-ascii?Q?OSG2eotJ3vzR1z8mBqtW6oSwkSGGSRueueIY076agFkkvfaMGwq3gxarLt0b?= =?us-ascii?Q?MPfYl7XGZoWwBus5khvFtjB2KREFIXyyEeSozdB/b6y+Xwp+yW6p3pAzifOM?= =?us-ascii?Q?45PywVs3um+35J0vxY84CM9z7A50YIP9hqTdZW/6TkSHDvmzdl7oS3/E6wKe?= =?us-ascii?Q?J5Z8ffz9C8fDK1Bo9/MfzCySfNrkWDyb240e3GAcCGrI57jCFxLECucoXc3K?= =?us-ascii?Q?2T7ns3XgVGXWB6Y17UpoTWlMy8TFFJPJxD7IaCbFl2J194c/sYniKNncU4rj?= =?us-ascii?Q?LCe72wuW5ezeHqcYwO7AXpEJshngcfU0nvzh+IotXvlaEQ/WmBSYmV90feyD?= =?us-ascii?Q?jVG3KDaEYA4XOU60rg/d2rjvU4m3E3+MocENMQ36O4oQ4o/nY2Nd7C9KUKfp?= =?us-ascii?Q?9VOgGB1ZiMwsc9qoWrgFXNpi4T0Ij71njehnhF2zo4XeBXSJOj7RwEksn7GZ?= =?us-ascii?Q?HnjkPIdH5moGzay4U9T0IsiM8Fx9d/yHSaiqB77y89UntxYx++6b8pOyrbhc?= =?us-ascii?Q?iRKwxHlpV2bCGb5zQXd6fYb/6ILk1c2g4Uf4rQ5LNWjhHQtUV1150RRq6cKd?= =?us-ascii?Q?dhjXRSKYtdkos6AdsxHGoYb0vgUQ9ixW1iP20gI2ePsyT3i9Nx+oq6koT/KD?= =?us-ascii?Q?r9aOrJJ+h1dKXRV99saUpfQaX0/tdBum4ZSQG59OHhU2aXKmsPiUb1+k8cTi?= =?us-ascii?Q?x13PP8VX1qRMmU4y6hKwaskiZijGrDwbhN3Fe3l5O1+oRjD8ZMbNPfLyGQQ6?= =?us-ascii?Q?Nd6MYVd1Sj3MAGU/MeCf97IrUiA7pkHsABzymVyM767jrxQN8auePdFin4jk?= =?us-ascii?Q?N2uyXx8xCn2tZBv3swxebRnaLjVu2036HVTGCD9sVnzNXhwz38gddPQVlKeT?= =?us-ascii?Q?RVxSRK7Q8rk+UngMwe6pLnat9jGV+z9OmiwfkQFX8vyxmA7yPeyxbuwBocqP?= =?us-ascii?Q?L3TAt7ZHaDELY+/Uc34DCgEi3P7kk1rFhjM881zdi6SLizNKNCwTju9JHgxk?= =?us-ascii?Q?zMZg/WCq22D7bafyMFZK7mjzfMnJoSoMsCLVw6CRk5iHJYRZdvZb4c+WnmLQ?= =?us-ascii?Q?+CidMFQqZ8vzjRu5MHH4PMF7Ans3cJNaACVlyRnSq4bbr+x546vgHLkS3HdU?= =?us-ascii?Q?7TynGgpRQIRyxos=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:50.3037 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4dc71f47-69e0-476a-96fa-08dd5ff25114 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF12042BF6F Content-Type: text/plain; charset="utf-8" Restructure l1tf to use select/apply functions to create consistent vulnerability handling. Define new AUTO mitigation for l1tf. Signed-off-by: David Kaplan --- arch/x86/include/asm/processor.h | 1 + arch/x86/kernel/cpu/bugs.c | 25 +++++++++++++++++++------ arch/x86/kvm/vmx/vmx.c | 2 ++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/proces= sor.h index 5d2f7e5aff26..0973bed22172 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -734,6 +734,7 @@ void store_cpu_caps(struct cpuinfo_x86 *info); =20 enum l1tf_mitigations { L1TF_MITIGATION_OFF, + L1TF_MITIGATION_AUTO, L1TF_MITIGATION_FLUSH_NOWARN, L1TF_MITIGATION_FLUSH, L1TF_MITIGATION_FLUSH_NOSMT, diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 1d77747e0f74..b9b7f5967f1e 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -67,6 +67,7 @@ static void __init spectre_v2_user_apply_mitigation(void); static void __init ssb_select_mitigation(void); static void __init ssb_apply_mitigation(void); static void __init l1tf_select_mitigation(void); +static void __init l1tf_apply_mitigation(void); static void __init mds_select_mitigation(void); static void __init mds_update_mitigation(void); static void __init mds_apply_mitigation(void); @@ -234,6 +235,7 @@ void __init cpu_select_mitigations(void) retbleed_apply_mitigation(); spectre_v2_user_apply_mitigation(); ssb_apply_mitigation(); + l1tf_apply_mitigation(); mds_apply_mitigation(); taa_apply_mitigation(); mmio_apply_mitigation(); @@ -2554,7 +2556,7 @@ EXPORT_SYMBOL_GPL(itlb_multihit_kvm_mitigation); =20 /* Default mitigation for L1TF-affected CPUs */ enum l1tf_mitigations l1tf_mitigation __ro_after_init =3D - IS_ENABLED(CONFIG_MITIGATION_L1TF) ? L1TF_MITIGATION_FLUSH : L1TF_MITIGAT= ION_OFF; + IS_ENABLED(CONFIG_MITIGATION_L1TF) ? L1TF_MITIGATION_AUTO : L1TF_MITIGATI= ON_OFF; #if IS_ENABLED(CONFIG_KVM_INTEL) EXPORT_SYMBOL_GPL(l1tf_mitigation); #endif @@ -2601,23 +2603,34 @@ static void override_cache_bits(struct cpuinfo_x86 = *c) } =20 static void __init l1tf_select_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_L1TF) || cpu_mitigations_off()) { + l1tf_mitigation =3D L1TF_MITIGATION_OFF; + return; + } + + if (l1tf_mitigation =3D=3D L1TF_MITIGATION_AUTO) { + if (cpu_mitigations_auto_nosmt()) + l1tf_mitigation =3D L1TF_MITIGATION_FLUSH_NOSMT; + else + l1tf_mitigation =3D L1TF_MITIGATION_FLUSH; + } +} + +static void __init l1tf_apply_mitigation(void) { u64 half_pa; =20 if (!boot_cpu_has_bug(X86_BUG_L1TF)) return; =20 - if (cpu_mitigations_off()) - l1tf_mitigation =3D L1TF_MITIGATION_OFF; - else if (cpu_mitigations_auto_nosmt()) - l1tf_mitigation =3D L1TF_MITIGATION_FLUSH_NOSMT; - override_cache_bits(&boot_cpu_data); =20 switch (l1tf_mitigation) { case L1TF_MITIGATION_OFF: case L1TF_MITIGATION_FLUSH_NOWARN: case L1TF_MITIGATION_FLUSH: + case L1TF_MITIGATION_AUTO: break; case L1TF_MITIGATION_FLUSH_NOSMT: case L1TF_MITIGATION_FULL: diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 3dd9007ae685..bd61e88ba445 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -273,6 +273,7 @@ static int vmx_setup_l1d_flush(enum vmx_l1d_flush_state= l1tf) case L1TF_MITIGATION_OFF: l1tf =3D VMENTER_L1D_FLUSH_NEVER; break; + case L1TF_MITIGATION_AUTO: case L1TF_MITIGATION_FLUSH_NOWARN: case L1TF_MITIGATION_FLUSH: case L1TF_MITIGATION_FLUSH_NOSMT: @@ -7652,6 +7653,7 @@ int vmx_vm_init(struct kvm *kvm) case L1TF_MITIGATION_FLUSH_NOWARN: /* 'I explicitly don't care' is set */ break; + case L1TF_MITIGATION_AUTO: case L1TF_MITIGATION_FLUSH: case L1TF_MITIGATION_FLUSH_NOSMT: case L1TF_MITIGATION_FULL: --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2056.outbound.protection.outlook.com [40.107.94.56]) (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 DF8BA239579 for ; Mon, 10 Mar 2025 16:41:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624866; cv=fail; b=Cp/qHSc+z3S/UstJ/5WnZj9lGCZovilC9nqCSPj27dFUK5/gfkdGQLRr9X5np+YX/slnSpGP9zz6HFdfcS8NzNgQRnLA+rODn0/1oUdX/teh3OpqnGr6zj9UVMA1VCWEHmisTXI2B86Oj8XgMFsLd7WdTs9xs5ru1P7y4woW31E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624866; c=relaxed/simple; bh=OEDSGxHT7g/0Yi/rfls5CjwZMgfZbqEb5v8ReDL49yQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pRHKR2GM65UEGKduec7Aw2IAKUNJU+aBjJBq6iTmzhLGi3RjXJf1jrIvfv2iqFe6fA7feZuzFgiocaVhRRpLLeFnrTJGyEVB1mlNy+XicPTyiGeOD6FBpHAbJxt0261WU64sDFOEMulS5N6RA5Jt+P9zk1cqXtBua7FJwDr46Jw= 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=glumMu0T; arc=fail smtp.client-ip=40.107.94.56 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="glumMu0T" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W7VwuUN7/LKarXGBGoEJ8FUF3Op/91h1+BgMh3K/IassLX/JCwUDxiKnTyqJ6vD1QPT4IWohm1KB6rV12mbfNmnwEmJjTgX+qZ10ef6XeWgo+CEmXE8eYPW3kgpcQ+iCV4DVnrghp7obHpB/IRwMdNJrs9yb4HunhZ83pXdCBO6hSPy3Mc9vxx9/y567al+sKCQBDRUqqbOIP0kgU4mVYwzZNMm86NLZMdpbcGrIk7Uo+WGq2BUPqUcBzColsGUfc4LLVd1Y9tgFEOYXC0hQnvdy6AytotC2WSs2hvRKA07I7IgFSQL3MFBBhWwv4oIfVrVwA2V4ddu2zTZrgN5V5g== 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=l7S5v4wHBRmo8k807WVoxXQUpD3Qutlypvm8cJqZbLM=; b=QRJ80pMDgH6hjImBULGRm3CYwwuuNpkv0mA2DcDcVZ1yrujy0ntP4VetXkvZxH/ItmpWCYPtGjn7T2CsWX/W6qV2+OzXx1/Mi0COoKVv1cE5w22sHbMNJTkjBy1Dcx1Tn/V+M/IkxpO9yWEX2nGB2NLQGnu4GC1CBlTKfJaPoitoTRTS8sxs8FyhgG+HzrJFGJmO+fpa57JjhZTBlrXkCtOtegPdBxNFMmdtkNoq4lwobQ49zRnwV0lun8kVF4LyHv8TlEQin4j661zEF6PEbAR9IPQ2fATjTW2A1U2VyEt3LKdETyVW1mhI1tXUbdhPF6wDK/DJPwydfNnIESVWPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=l7S5v4wHBRmo8k807WVoxXQUpD3Qutlypvm8cJqZbLM=; b=glumMu0TIgGuiWgjCs3kkGx64f6mx4ZmeFUAeBpciSbOALAZ595+adArwrKYa+yaYYm5xQwI+gU/6IjNLF0U8t9XzD4QamSxbPNyJSi7ndqIkhlyH9vAUZt0xhCOxiZCOawyItpo913pm88ttxCu+7CnKdR+HeG1KBQ34tHTFYg= Received: from BN9PR03CA0067.namprd03.prod.outlook.com (2603:10b6:408:fc::12) by MW4PR12MB5626.namprd12.prod.outlook.com (2603:10b6:303:169::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:54 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::18) by BN9PR03CA0067.outlook.office365.com (2603:10b6:408:fc::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:53 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:53 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:49 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 16/36] x86/bugs: Restructure srso mitigation Date: Mon, 10 Mar 2025 11:40:03 -0500 Message-ID: <20250310164023.779191-17-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MW4PR12MB5626:EE_ X-MS-Office365-Filtering-Correlation-Id: 16612539-c8b3-468e-8b9b-08dd5ff2531b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JvOI2eV46CfzuFNAdaC6QbTdTuqkjlhodTQ/hBWX//Qok4N29QMrnptPIA/x?= =?us-ascii?Q?Ztaxi+vgnUl4dbU0qQ07zWv0MSAvD3pKoFbHtWj7zy0ucrIjepete/kOT7qx?= =?us-ascii?Q?z+mr9TVW8yiNHXWIzP192DvmGORbepGzamnJoCqxAYYw4PrRzzRTOcdg2NeW?= =?us-ascii?Q?LjjVwmFdqr5cjjItCo1E86ohdZGR66k4wc1qdZfVUB/drc/AELHZEgyP4NIs?= =?us-ascii?Q?J+5PpRRU+QVce0rG/vdpl9awm5OxG5g3weCzUvDpdpKhWE1C/zadB55cvs/j?= =?us-ascii?Q?csMZUUZ8TRIOn7N3NH4/ubLjCqhEhILR/D+3EkKgjF9xdbIVqog4xibNfVdH?= =?us-ascii?Q?eMql/Lh/Djye+REwMys7hduOAdAp3SUpNolUP3b7VcYIh0daDgs1CND5TklM?= =?us-ascii?Q?flsY4EYpVsGUI9QlBZqvUgzi+V5LT5i23Cxd3/ipV7ooeVS4gftb2ZAdQFvP?= =?us-ascii?Q?vxDhRMZ87E7GJ/wDoUJjTURMTUQgNTycJN2eVyg7kQCGkaYswFSzk5tyWa9R?= =?us-ascii?Q?F5FkVeCLjtLzkbX+bR/wB84v/RvEd+lesTGoOyZEvnLoA90JEHANmcGrdTnG?= =?us-ascii?Q?18xoJnmY11FUldMhoj9HWcc/+U6MgNO7MG/YxuaIA3bJhrqKZEQoiL5QUC1u?= =?us-ascii?Q?0XFlZg/8mFHTd0akS+aao/8Dn+00NyN9WXIDAmuZVMZLQTkJV3v7SwI1OeXM?= =?us-ascii?Q?F3SngMFQRuGUf6ZMrAiOYOJhMvbCMutHY3zGaT9fbvKxfHiCsP6OB2O6yFLk?= =?us-ascii?Q?sE/iw3Xi1JtmJQyFs2k6KrwtIFg8JBP8CXViNu/Znz4d9ZqHPBbQMlzN33bg?= =?us-ascii?Q?yu55hdxkmAZJPAkFx4+aA6zhg6l5xpqoHdvKkIwzMrfPAfktoYE698zXStdh?= =?us-ascii?Q?57R2r8Rvx9JPMa2nNdsgm2M9bAmARX1USdueUpeKOZUNLd5n0HF+H9mBhv4R?= =?us-ascii?Q?XHLIjM0Srk+tIvW09TkC/0ADsk2OiLWeNZoQduS4G5s/RuMITFnUeOKSendF?= =?us-ascii?Q?Kbp1Lrx2JXVQ0lRUL86Y8E2MzZL8vRWKzHY1lodUNDQ3BW7gSip1IW9EQoH0?= =?us-ascii?Q?w4xU1WzhIrG/yOK44XOf9Wh5mIbK4rHTK594jclHuhDIFJpDHWkQYi6BhyJi?= =?us-ascii?Q?AOlE/GxnmXsT7i9pstMUszl7sesa/WNXqtVeuX1nklSIaL7g23qxk8LVFNxR?= =?us-ascii?Q?mFiB8DboqvCAL7t35eMXx7sbhuRckCLq9bvj29s2o07wQ5zY8pRs84aDQkon?= =?us-ascii?Q?S+MUefBar0Z3/KPyR+r5sct1eC2lh+BrPVRFtbhwzkWMHv7wiWiWoRsHQr2n?= =?us-ascii?Q?ZkvR54DdNMjYRMBWmXXY0poQvIlAX9vQ8GwiCnxlrzBnUu9KdV8zU7edYeRo?= =?us-ascii?Q?qM8Oatlzx/EEbSzcckHC5PbRzbQTH3anLqFmfyFOh2S+NKTEv4DG6f4XTpRU?= =?us-ascii?Q?O793uBxf+1urqou62N8sMcA1YXUAo0j8gMsqARWhXKNIp+uAORVe4sLXk6z4?= =?us-ascii?Q?jnWgUodM+ltCYco=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:53.7204 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 16612539-c8b3-468e-8b9b-08dd5ff2531b 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB5626 Content-Type: text/plain; charset="utf-8" Restructure srso to use select/update/apply functions to create consistent vulnerability handling. Like with retbleed, the command line options directly select mitigations which can later be modified. Also fix the ibpb-vmexit case to look at CONFIG_MITIGATION_IBPB_ENTRY instead of CONFIG_MITIGATION_SRSO. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 213 +++++++++++++++++-------------------- 1 file changed, 97 insertions(+), 116 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index b9b7f5967f1e..d48b0a941b2d 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -84,6 +84,8 @@ static void __init srbds_select_mitigation(void); static void __init srbds_apply_mitigation(void); static void __init l1d_flush_select_mitigation(void); static void __init srso_select_mitigation(void); +static void __init srso_update_mitigation(void); +static void __init srso_apply_mitigation(void); static void __init gds_select_mitigation(void); static void __init gds_apply_mitigation(void); static void __init bhi_select_mitigation(void); @@ -204,11 +206,6 @@ void __init cpu_select_mitigations(void) rfds_select_mitigation(); srbds_select_mitigation(); l1d_flush_select_mitigation(); - - /* - * srso_select_mitigation() depends and must run after - * retbleed_select_mitigation(). - */ srso_select_mitigation(); gds_select_mitigation(); bhi_select_mitigation(); @@ -229,6 +226,8 @@ void __init cpu_select_mitigations(void) taa_update_mitigation(); mmio_update_mitigation(); rfds_update_mitigation(); + /* srso_update_mitigation() relies on retbleed_mitigation. */ + srso_update_mitigation(); =20 spectre_v1_apply_mitigation(); spectre_v2_apply_mitigation(); @@ -241,6 +240,7 @@ void __init cpu_select_mitigations(void) mmio_apply_mitigation(); rfds_apply_mitigation(); srbds_apply_mitigation(); + srso_apply_mitigation(); gds_apply_mitigation(); bhi_apply_mitigation(); } @@ -2690,6 +2690,7 @@ early_param("l1tf", l1tf_cmdline); =20 enum srso_mitigation { SRSO_MITIGATION_NONE, + SRSO_MITIGATION_AUTO, SRSO_MITIGATION_UCODE_NEEDED, SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED, SRSO_MITIGATION_MICROCODE, @@ -2699,14 +2700,6 @@ enum srso_mitigation { SRSO_MITIGATION_BP_SPEC_REDUCE, }; =20 -enum srso_mitigation_cmd { - SRSO_CMD_OFF, - SRSO_CMD_MICROCODE, - SRSO_CMD_SAFE_RET, - SRSO_CMD_IBPB, - SRSO_CMD_IBPB_ON_VMEXIT, -}; - static const char * const srso_strings[] =3D { [SRSO_MITIGATION_NONE] =3D "Vulnerable", [SRSO_MITIGATION_UCODE_NEEDED] =3D "Vulnerable: No microcode", @@ -2718,8 +2711,7 @@ static const char * const srso_strings[] =3D { [SRSO_MITIGATION_BP_SPEC_REDUCE] =3D "Mitigation: Reduced Speculation" }; =20 -static enum srso_mitigation srso_mitigation __ro_after_init =3D SRSO_MITIG= ATION_NONE; -static enum srso_mitigation_cmd srso_cmd __ro_after_init =3D SRSO_CMD_SAFE= _RET; +static enum srso_mitigation srso_mitigation __ro_after_init =3D SRSO_MITIG= ATION_AUTO; =20 static int __init srso_parse_cmdline(char *str) { @@ -2727,15 +2719,15 @@ static int __init srso_parse_cmdline(char *str) return -EINVAL; =20 if (!strcmp(str, "off")) - srso_cmd =3D SRSO_CMD_OFF; + srso_mitigation =3D SRSO_MITIGATION_NONE; else if (!strcmp(str, "microcode")) - srso_cmd =3D SRSO_CMD_MICROCODE; + srso_mitigation =3D SRSO_MITIGATION_MICROCODE; else if (!strcmp(str, "safe-ret")) - srso_cmd =3D SRSO_CMD_SAFE_RET; + srso_mitigation =3D SRSO_MITIGATION_SAFE_RET; else if (!strcmp(str, "ibpb")) - srso_cmd =3D SRSO_CMD_IBPB; + srso_mitigation =3D SRSO_MITIGATION_IBPB; else if (!strcmp(str, "ibpb-vmexit")) - srso_cmd =3D SRSO_CMD_IBPB_ON_VMEXIT; + srso_mitigation =3D SRSO_MITIGATION_IBPB_ON_VMEXIT; else pr_err("Ignoring unknown SRSO option (%s).", str); =20 @@ -2749,130 +2741,75 @@ static void __init srso_select_mitigation(void) { bool has_microcode =3D boot_cpu_has(X86_FEATURE_IBPB_BRTYPE); =20 - if (!boot_cpu_has_bug(X86_BUG_SRSO) || - cpu_mitigations_off() || - srso_cmd =3D=3D SRSO_CMD_OFF) { - if (boot_cpu_has(X86_FEATURE_SBPB)) - x86_pred_cmd =3D PRED_CMD_SBPB; - goto out; - } + if (!boot_cpu_has_bug(X86_BUG_SRSO) || cpu_mitigations_off()) + srso_mitigation =3D SRSO_MITIGATION_NONE; + + if (srso_mitigation =3D=3D SRSO_MITIGATION_NONE) + return; + + if (srso_mitigation =3D=3D SRSO_MITIGATION_AUTO) + srso_mitigation =3D SRSO_MITIGATION_SAFE_RET; =20 if (has_microcode) { /* * Zen1/2 with SMT off aren't vulnerable after the right * IBPB microcode has been applied. - * - * Zen1/2 don't have SBPB, no need to try to enable it here. */ if (boot_cpu_data.x86 < 0x19 && !cpu_smt_possible()) { setup_force_cpu_cap(X86_FEATURE_SRSO_NO); - goto out; - } - - if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_IBPB) { - srso_mitigation =3D SRSO_MITIGATION_IBPB; - goto out; + srso_mitigation =3D SRSO_MITIGATION_NONE; + return; } } else { pr_warn("IBPB-extending microcode not applied!\n"); pr_warn(SRSO_NOTICE); - - /* may be overwritten by SRSO_CMD_SAFE_RET below */ - srso_mitigation =3D SRSO_MITIGATION_UCODE_NEEDED; } =20 - switch (srso_cmd) { - case SRSO_CMD_MICROCODE: - if (has_microcode) { - srso_mitigation =3D SRSO_MITIGATION_MICROCODE; - pr_warn(SRSO_NOTICE); - } - break; - - case SRSO_CMD_SAFE_RET: - if (boot_cpu_has(X86_FEATURE_SRSO_USER_KERNEL_NO)) - goto ibpb_on_vmexit; - - if (IS_ENABLED(CONFIG_MITIGATION_SRSO)) { - /* - * Enable the return thunk for generated code - * like ftrace, static_call, etc. - */ - setup_force_cpu_cap(X86_FEATURE_RETHUNK); - setup_force_cpu_cap(X86_FEATURE_UNRET); - - if (boot_cpu_data.x86 =3D=3D 0x19) { - setup_force_cpu_cap(X86_FEATURE_SRSO_ALIAS); - x86_return_thunk =3D srso_alias_return_thunk; - } else { - setup_force_cpu_cap(X86_FEATURE_SRSO); - x86_return_thunk =3D srso_return_thunk; - } - if (has_microcode) - srso_mitigation =3D SRSO_MITIGATION_SAFE_RET; - else - srso_mitigation =3D SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED; - } else { + switch (srso_mitigation) { + case SRSO_MITIGATION_SAFE_RET: + if (!IS_ENABLED(CONFIG_MITIGATION_SRSO)) pr_err("WARNING: kernel not compiled with MITIGATION_SRSO.\n"); + else if (boot_cpu_has(X86_FEATURE_SRSO_USER_KERNEL_NO)) { + srso_mitigation =3D SRSO_MITIGATION_IBPB_ON_VMEXIT; + goto ibpb_on_vmexit; } - break; =20 - case SRSO_CMD_IBPB: - if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY)) { - if (has_microcode) { - setup_force_cpu_cap(X86_FEATURE_ENTRY_IBPB); - setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT); - srso_mitigation =3D SRSO_MITIGATION_IBPB; - - /* - * IBPB on entry already obviates the need for - * software-based untraining so clear those in case some - * other mitigation like Retbleed has selected them. - */ - setup_clear_cpu_cap(X86_FEATURE_UNRET); - setup_clear_cpu_cap(X86_FEATURE_RETHUNK); - - /* - * There is no need for RSB filling: entry_ibpb() ensures - * all predictions, including the RSB, are invalidated, - * regardless of IBPB implementation. - */ - setup_clear_cpu_cap(X86_FEATURE_RSB_VMEXIT); - } - } else { - pr_err("WARNING: kernel not compiled with MITIGATION_IBPB_ENTRY.\n"); - } + if (!has_microcode) + srso_mitigation =3D SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED; break; - ibpb_on_vmexit: - case SRSO_CMD_IBPB_ON_VMEXIT: + case SRSO_MITIGATION_IBPB_ON_VMEXIT: if (boot_cpu_has(X86_FEATURE_SRSO_BP_SPEC_REDUCE)) { pr_notice("Reducing speculation to address VM/HV SRSO attack vector.\n"= ); srso_mitigation =3D SRSO_MITIGATION_BP_SPEC_REDUCE; break; } - - if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY)) { - if (has_microcode) { - setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT); - srso_mitigation =3D SRSO_MITIGATION_IBPB_ON_VMEXIT; - - /* - * There is no need for RSB filling: entry_ibpb() ensures - * all predictions, including the RSB, are invalidated, - * regardless of IBPB implementation. - */ - setup_clear_cpu_cap(X86_FEATURE_RSB_VMEXIT); - } - } else { + fallthrough; + case SRSO_MITIGATION_IBPB: + if (!IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY)) pr_err("WARNING: kernel not compiled with MITIGATION_IBPB_ENTRY.\n"); - } + + if (!has_microcode) + srso_mitigation =3D SRSO_MITIGATION_UCODE_NEEDED; break; default: break; } +} =20 -out: +static void __init srso_update_mitigation(void) +{ + /* If retbleed is using IBPB, that works for SRSO as well */ + if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_IBPB && + boot_cpu_has(X86_FEATURE_IBPB_BRTYPE)) + srso_mitigation =3D SRSO_MITIGATION_IBPB; + + if (boot_cpu_has_bug(X86_BUG_SRSO) && !cpu_mitigations_off()) + pr_info("%s\n", srso_strings[srso_mitigation]); +} + +static void __init srso_apply_mitigation(void) +{ /* * Clear the feature flag if this mitigation is not selected as that * feature flag controls the BpSpecReduce MSR bit toggling in KVM. @@ -2880,8 +2817,52 @@ static void __init srso_select_mitigation(void) if (srso_mitigation !=3D SRSO_MITIGATION_BP_SPEC_REDUCE) setup_clear_cpu_cap(X86_FEATURE_SRSO_BP_SPEC_REDUCE); =20 - if (srso_mitigation !=3D SRSO_MITIGATION_NONE) - pr_info("%s\n", srso_strings[srso_mitigation]); + if (srso_mitigation =3D=3D SRSO_MITIGATION_NONE) { + if (boot_cpu_has(X86_FEATURE_SBPB)) + x86_pred_cmd =3D PRED_CMD_SBPB; + return; + } + + switch (srso_mitigation) { + case SRSO_MITIGATION_SAFE_RET: + case SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED: + /* + * Enable the return thunk for generated code + * like ftrace, static_call, etc. + */ + setup_force_cpu_cap(X86_FEATURE_RETHUNK); + setup_force_cpu_cap(X86_FEATURE_UNRET); + + if (boot_cpu_data.x86 =3D=3D 0x19) { + setup_force_cpu_cap(X86_FEATURE_SRSO_ALIAS); + x86_return_thunk =3D srso_alias_return_thunk; + } else { + setup_force_cpu_cap(X86_FEATURE_SRSO); + x86_return_thunk =3D srso_return_thunk; + } + break; + case SRSO_MITIGATION_IBPB: + setup_force_cpu_cap(X86_FEATURE_ENTRY_IBPB); + /* + * IBPB on entry already obviates the need for + * software-based untraining so clear those in case some + * other mitigation like Retbleed has selected them. + */ + setup_clear_cpu_cap(X86_FEATURE_UNRET); + setup_clear_cpu_cap(X86_FEATURE_RETHUNK); + fallthrough; + case SRSO_MITIGATION_IBPB_ON_VMEXIT: + setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT); + /* + * There is no need for RSB filling: entry_ibpb() ensures + * all predictions, including the RSB, are invalidated, + * regardless of IBPB implementation. + */ + setup_clear_cpu_cap(X86_FEATURE_RSB_VMEXIT); + break; + default: + break; + } } =20 #undef pr_fmt --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2045.outbound.protection.outlook.com [40.107.220.45]) (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 A4785233D9D for ; Mon, 10 Mar 2025 16:41:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624864; cv=fail; b=ueRZwKQftPvB2hq+QeXguf8pYRyj/dyGkEGMWUQZ7D2JUWKmNvNOVrNBx96fAPMCxaj5Ypnz8F4GgA6A3K+0mFUfqb6MhhAOURml8/foR/Lt8A0vdxENOLCw3y1y3H+zM3aKA+efuW/2CQ/8c/Ss8xPNJ7DYFIgjWqPQxAvZV+s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624864; c=relaxed/simple; bh=CTOhPWyTUo58ZVX2uC6Z3ghRUk0a51pisY3lS3ZSrfk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LFkXBd5xo2tzHjjnKlfu/Row3M/3YLsZrXQ9zI4DVGXuxX7+hcv5/LkrYRF6Qwe9FNg3NsaDhNuw9WcMj+FYxzwBxDucwoRN80fbR7EeuTKm/0mqQkL/rWgPKek1CX3KsyEHby6wBBD/0EHpRnyb5FZ4ReEuv2/yMQBGogCX8vc= 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=zqRG5+FM; arc=fail smtp.client-ip=40.107.220.45 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="zqRG5+FM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jE5QnsuNRwD4zkc+xBmfAzrdKE1LZCFrmgQHo6c44NsrkwY2drYJE5p89IRpMjTGLHwROcxkMaRAgqGcKJB3bEy+/WfJ3ARTlgRo+kqdjbbG/WV/0wQGHkVTP+K6MDxbbpEmup4807khVoI1hjmVdB2yQ4WHjWxfVOp5bT6VAGo1x4YGta0p1RRbx8z8PNT7VI3OBvUub4eJl+B5xN8Wz5xVHLE7F0i9V3roqLf1NP3XGED7zml8V0ODRP6DkzU/kQkBoNRvpxX1W9pRq0NQZIgiIvBPH1ewxlztXzSpyEgJOcZBNceJ2Igk6w8I0zjrav8IMgZ6PCqU1iSLf3CGUg== 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=ayDX6v/pZk0Y25SNXj0kEL2q9kCZsV7JyiEU6M3QcKU=; b=Id2nSn4Kh4C+zo8oPgqAJ9FleyW84qXY0SYmInVCrJ0LRIVGyCxQDy6nqAoSbYzbll8CbBBjtOpuDiXScsFo3OScQ/BtUyyR4S/Ee503Wd4dXyfkGOThngE6/ANmfOy8R3E6WIOm9fOCT4qkoh+msQQaj+WdizvizlnMHKETyIAYPnQeX7TmtUD+rELqErUeWQ316dR+leP5ERTpBAywE3BdpnelfpFsQ9UtLjj3j8yu1jqRfA6AOYUJ1LMqv8DF8FiDvSOeQH3yl7XxZ96yo2Xp3Rif4BwDZQyoHdAUjbPk90K6cUF8s05HTyCNmiDZb6j7/uaNnZio0QeP8X0C/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=ayDX6v/pZk0Y25SNXj0kEL2q9kCZsV7JyiEU6M3QcKU=; b=zqRG5+FMD6DoZpEbk2BgYsipZyka9apF3v4zJW4xtBuZVdYCFjgebjD/gYAYq8EKzjJHwNs7z8x1kGhGrFJ6zCm4KbF7c7VH1fGJj3ajHz43Hai2i0coNs2lcKuAPHhfcvqauWyhhVtDxlHLhHwtnXWl/GDdg15GiHvo0cQkffk= Received: from BN9PR03CA0087.namprd03.prod.outlook.com (2603:10b6:408:fc::32) by MN2PR12MB4271.namprd12.prod.outlook.com (2603:10b6:208:1d7::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:56 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::f8) by BN9PR03CA0087.outlook.office365.com (2603:10b6:408:fc::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:56 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:56 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:51 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 17/36] Documentation/x86: Document the new attack vector controls Date: Mon, 10 Mar 2025 11:40:04 -0500 Message-ID: <20250310164023.779191-18-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MN2PR12MB4271:EE_ X-MS-Office365-Filtering-Correlation-Id: fa4ed3f0-4237-4129-5248-08dd5ff254a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z7CmiM0Qh/n+n1nYJgdYD9Ss2C2k2eLwDrCctnlbkqpTTvAwCQo25/CQAaIY?= =?us-ascii?Q?IF/ZH33qldMDQ35Sj8eNj2tRoaBXe4kPHAkw4SKPdP7dSrDovx/veqKAXPtY?= =?us-ascii?Q?KNFHycSebEaMQ5WhqyOn1K520FeiAmcm8iUAzU3dENSj7PWhcj3oI/ncal/m?= =?us-ascii?Q?alIg9cXWwz+H+0r5qh9F7ewRIUINZr0OMlfTRaFGZQcaaXTGboMUmsO74VW+?= =?us-ascii?Q?30R7vWvtV0v3vwGjrM8rnLxh3fCqSltvNveXzAGK3LlpXIrHbuwaJieYq8tz?= =?us-ascii?Q?QyckfW9MuFwPzwchz/RhXUgIF8uyDcH3dwkyf0e/fZLgcbYIGjhDTIotScmM?= =?us-ascii?Q?mMCJTgN6vAF7kD3MFi4lJS0raMyPP8p2o1zpVZ4/KzEX0BZv0t0SVKC8wJD0?= =?us-ascii?Q?aM56eqkUFAEJ6RX/04XkOTQLYHKD+abl06M39b4OtMkorEHb65LytviEbmGm?= =?us-ascii?Q?Z6EHXvSpwg6gOywjdYrRJ+RKcpr7HGDRPxQlNeKtwKcy4vTrwB51djctdltS?= =?us-ascii?Q?SUYMf4V31Lrp2e7bQGIWlP9Mb/yQJ3/1tfrwyTwKcmVIVrIIRcASO9HK26PH?= =?us-ascii?Q?S0qZe2NH225yxMrQKjoounA27SOvZyfaMctV1G3823SPv+gjLKJq/FNF95Eu?= =?us-ascii?Q?NEs4r6Bl/y6uDz9UkGvBtt2Wy+4VSygMuSl6lSYJdpLKG3NFYIszwf7BPyAM?= =?us-ascii?Q?hg0tLaaIR4R+L4UGS5+vNEaeUvZBv6IqC4QUY1voYUHkY9Xsf2hFbHjuE8Ah?= =?us-ascii?Q?f3l5WQ7O5ClOcp5/wrCmPsstnctSSMayWyPyoW77PqAIcRn34HyQDZ+1Fchg?= =?us-ascii?Q?OeF1cZ68o1rXOJ2jNrGs8wSmlxFZjYtC+HiKAXtmXKEVtO6E5sFBnxmtqd2g?= =?us-ascii?Q?vRMVCK8Inwv57u5CvrL1HQKrXGgZkiCWAOc1BZHNBcWZqrZ24CK1FwfX4SD5?= =?us-ascii?Q?t793XZz8O96gs2I6XNMk47OzenYsDD7ZBoRZ6+fwwmlUTQx15FXpKKASaJvz?= =?us-ascii?Q?p2wE5Lm/8No11j19yc2FLOh0A+lcLIIVKToUVSSUvvHGFE97b2CS7rRvHby8?= =?us-ascii?Q?qDu0zt3OfYy6TNdwVJvUQnMFv/GOBLE/BRaQ68GQ9iee0tsCycD8MupnTxKM?= =?us-ascii?Q?09LUYTdrhYSvJm65Sk3S1XB2xL/I37haiv3UZyKDODN3uNukmkHUYVA3Gp9F?= =?us-ascii?Q?yOH+auC3QymSJP7tNA7k6vkW8fmBGNywJ0HMhFmFh1hAjisi+eby+oC2ktwM?= =?us-ascii?Q?g05+2Ud/0PAAhzzGPFWI1cm6cEIQVfoolg5g/FxgYLMRyYqgLBG2n3R+BYn2?= =?us-ascii?Q?+/QC9J23xgGQ/WxAajDt030Yr5SBFLcmzjbga9lYbV8grztgjQy39QgSZn5S?= =?us-ascii?Q?+4tBaLMxu2ixIMDiPTqzfk7S9O0U/Y8LKHniHeZhu9st5EDyB4WnfEg5W+2o?= =?us-ascii?Q?lIUmj6WtE4IW71vSm54cH9EAl+16T/4bKOSiEVp0jVZ+GblLzLpR52spsabM?= =?us-ascii?Q?axVhFgjFpo/T/iM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:56.2985 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa4ed3f0-4237-4129-5248-08dd5ff254a7 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4271 Content-Type: text/plain; charset="utf-8" Document the 5 new attack vector command line options, how they interact with existing vulnerability controls, and recommendations on when they can be disabled. Note that while mitigating against untrusted userspace requires both user-to-kernel and user-to-user protection, these are kept separate. The kernel can control what code executes inside of it and that may affect the risk associated with vulnerabilities especially if new kernel mitigations are implemented. The same isn't typically true of userspace. In other words, the risk associated with user-to-user or guest-to-guest attacks is unlikely to change over time. While the risk associated with user-to-kernel or guest-to-host attacks may change. Therefore, these controls are separated. Signed-off-by: David Kaplan --- .../hw-vuln/attack_vector_controls.rst | 236 ++++++++++++++++++ Documentation/admin-guide/hw-vuln/index.rst | 1 + 2 files changed, 237 insertions(+) create mode 100644 Documentation/admin-guide/hw-vuln/attack_vector_control= s.rst diff --git a/Documentation/admin-guide/hw-vuln/attack_vector_controls.rst b= /Documentation/admin-guide/hw-vuln/attack_vector_controls.rst new file mode 100644 index 000000000000..6a581503bc5d --- /dev/null +++ b/Documentation/admin-guide/hw-vuln/attack_vector_controls.rst @@ -0,0 +1,236 @@ +.. SPDX-License-Identifier: GPL-2.0 + +Attack Vector Controls +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Attack vector controls provide a simple method to configure only the mitig= ations +for CPU vulnerabilities which are relevant given the intended use of a sys= tem. +Administrators are encouraged to consider which attack vectors are relevan= t and +disable all others in order to recoup system performance. + +When new relevant CPU vulnerabilities are found, they will be added to the= se +attack vector controls so administrators will likely not need to reconfigu= re +their command line parameters as mitigations will continue to be correctly +applied based on the chosen attack vector controls. + +Attack Vectors +-------------- + +There are 5 sets of attack-vector mitigations currently supported by the k= ernel: + +#. :ref:`user_kernel` +#. :ref:`user_user` +#. :ref:`guest_host` +#. :ref:`guest_guest` +#. :ref:`smt` + +To control the enabled attack vectors, see :ref:`cmdline`. + +.. _user_kernel: + +User-to-Kernel +^^^^^^^^^^^^^^ + +The user-to-kernel attack vector involves a malicious userspace program +attempting to leak kernel data into userspace by exploiting a CPU vulnerab= ility. +The kernel data involved might be limited to certain kernel memory, or inc= lude +all memory in the system, depending on the vulnerability exploited. + +If no untrusted userspace applications are being run, such as with single-= user +systems, consider disabling user-to-kernel mitigations. + +Note that the CPU vulnerabilities mitigated by Linux have generally not be= en +shown to be exploitable from browser-based sandboxes. User-to-kernel +mitigations are therefore mostly relevant if unknown userspace application= s may +be run by untrusted users. + +*user-to-kernel mitigations are enabled by default* + +.. _user_user: + +User-to-User +^^^^^^^^^^^^ + +The user-to-user attack vector involves a malicious userspace program atte= mpting +to influence the behavior of another unsuspecting userspace program in ord= er to +exfiltrate data. The vulnerability of a userspace program is based on the +program itself and the interfaces it provides. + +If no untrusted userspace applications are being run, consider disabling +user-to-user mitigations. + +Note that because the Linux kernel contains a mapping of all physical memo= ry, +preventing a malicious userspace program from leaking data from another +userspace program requires mitigating user-to-kernel attacks as well for +complete protection. + +*user-to-user mitigations are enabled by default* + +.. _guest_host: + +Guest-to-Host +^^^^^^^^^^^^^ + +The guest-to-host attack vector involves a malicious VM attempting to leak +hypervisor data into the VM. The data involved may be limited, or may +potentially include all memory in the system, depending on the vulnerabili= ty +exploited. + +If no untrusted VMs are being run, consider disabling guest-to-host mitiga= tions. + +*guest-to-host mitigations are enabled by default if KVM support is presen= t* + +.. _guest_guest: + +Guest-to-Guest +^^^^^^^^^^^^^^ + +The guest-to-guest attack vector involves a malicious VM attempting to inf= luence +the behavior of another unsuspecting VM in order to exfiltrate data. The +vulnerability of a VM is based on the code inside the VM itself and the +interfaces it provides. + +If no untrusted VMs, or only a single VM is being run, consider disabling +guest-to-guest mitigations. + +Similar to the user-to-user attack vector, preventing a malicious VM from +leaking data from another VM requires mitigating guest-to-host attacks as = well +due to the Linux kernel phys map. + +*guest-to-guest mitigations are enabled by default if KVM support is prese= nt* + +.. _smt: + +Cross-Thread +^^^^^^^^^^^^ + +The cross-thread attack vector involves a malicious userspace program or +malicious VM either observing or attempting to influence the behavior of c= ode +running on the SMT sibling thread in order to exfiltrate data. + +Many cross-thread attacks can only be mitigated if SMT is disabled, which = will +result in reduced CPU core count and reduced performance. + +If cross-thread mitigations are fully enabled ('auto,nosmt'), all mitigati= ons +for cross-thread attacks will be enabled. SMT may be disabled depending on +which vulnerabilities are present in the CPU. + +If cross-thread mitigations are partially enabled ('auto'), mitigations for +cross-thread attacks will be enabled but SMT will not be disabled. + +If cross-thread mitigations are disabled, no mitigations for cross-thread +attacks will be enabled. + +Cross-thread mitigation may not be required if core-scheduling or similar +techniques are used to prevent untrusted workloads from running on SMT sib= lings. + +*cross-thread mitigations default to partially enabled* + +.. _cmdline: + +Command Line Controls +--------------------- + +Attack vectors are controlled through the mitigations=3D command line opti= on. The +value provided begins with a global option and then may optionally include= one +or more options to disable various attack vectors. + +Format: + | ``mitigations=3D[global]`` + | ``mitigations=3D[global];[attack vectors]`` + +Global options: + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Option Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +'off' All attack vectors disabled. +'auto' All attack vectors enabled, partial cross-thread mitigations. +'auto,nosmt' All attack vectors enabled, full cross-thread mitigations. +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Attack vector options: + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D +Option Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D +'no_user_kernel' Disables user-to-kernel mitigations. +'no_user_user' Disables user-to-user mitigations. +'no_guest_host' Disables guest-to-host mitigations. +'no_guest_guest' Disables guest-to-guest mitigations +'no_cross_thread' Disables all cross-thread mitigations. +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D + +Multiple attack vector options may be specified in a comma-separated list.= If +the global option is not specified, it defaults to 'auto'. The global opt= ion +'off' is equivalent to disabling all attack vectors. + +Examples: + | ``mitigations=3Dauto;no_user_kernel`` + + Enable all attack vectors except user-to-kernel. Partial cross-thread + mitigations. + + | ``mitigations=3Dauto,nosmt;no_guest_host,no_guest_guest`` + + Enable all attack vectors and cross-thread mitigations except for + guest-to-host and guest-to-guest mitigations. + + | ``mitigations=3D;no_cross_thread`` + + Enable all attack vectors but not cross-thread mitigations. + +Interactions with command-line options +-------------------------------------- + +Vulnerability-specific controls (e.g. "retbleed=3Doff") take precedence ov= er all +attack vector controls. Mitigations for individual vulnerabilities may be +turned on or off via their command-line options regardless of the attack v= ector +controls. + +Summary of attack-vector mitigations +------------------------------------ + +When a vulnerability is mitigated due to an attack-vector control, the def= ault +mitigation option for that particular vulnerability is used. To use a dif= ferent +mitigation, please use the vulnerability-specific command line option. + +The table below summarizes which vulnerabilities are mitigated when differ= ent +attack vectors are enabled and assuming the CPU is vulnerable. + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D +Vulnerability User-to-Kernel User-to-User Guest-to-Host Guest-to-Guest C= ross-Thread +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D +BHI X X +GDS X X X X = (Note 1) +L1TF X X = (Note 2) +MDS X X X X = (Note 2) +MMIO X X X X = (Note 2) +Meltdown X +Retbleed X X = (Note 3) +RFDS X X X X +Spectre_v1 X +Spectre_v2 X X +Spectre_v2_user X X = (Note 1) +SRBDS X X X X +SRSO X X +SSB (Note 4) +TAA X X X X = (Note 2) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +Notes: + 1 -- Can be mitigated without disabling SMT. + + 2 -- Disables SMT if cross-thread mitigations are fully enabled and t= he CPU + is vulnerable + + 3 -- Disables SMT if cross-thread mitigations are fully enabled, the C= PU is + vulnerable, and STIBP is not supported + + 4 -- Speculative store bypass is always enabled by default (no kernel + mitigation applied) unless overridden with spec_store_bypass_disable op= tion + +When an attack-vector is disabled, all mitigations for the vulnerabilities +listed in the above table are disabled, unless mitigation is required for a +different enabled attack-vector or a mitigation is explicitly selected via= a +vulnerability-specific command line option. diff --git a/Documentation/admin-guide/hw-vuln/index.rst b/Documentation/ad= min-guide/hw-vuln/index.rst index ff0b440ef2dc..1add4a0baeb0 100644 --- a/Documentation/admin-guide/hw-vuln/index.rst +++ b/Documentation/admin-guide/hw-vuln/index.rst @@ -9,6 +9,7 @@ are configurable at compile, boot or run time. .. toctree:: :maxdepth: 1 =20 + attack_vector_controls spectre l1tf mds --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2047.outbound.protection.outlook.com [40.107.237.47]) (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 3FC3F238D21 for ; Mon, 10 Mar 2025 16:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624863; cv=fail; b=Nx32yOzWFTzm95aR96GNeYXg1ZGV9XFtUP/rhJJahha15V3AtZctXa3tl4uIJ9VIIXn8ldhXvHlJd1oDJDW9CnWyDvoi3vN997sB9nY4FHFwWlxAZTiVSqmKBmHDUzo+juN8b0chaKDqV/apEJn3Y2X4xdEZ/Ujh3XMjQTYN7Kg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624863; c=relaxed/simple; bh=dUvNb1fXqp+Oo3Q6zPOs1JRGNA+ThHpQF8en9AwZIis=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ocE+G3U5fdVlcPhCQbyowD3FBrsQyK7jTFOKHDuldfpoHxiMz0oby/IX5lvATTgo9cyt/zLVtO714Ch7A6okcpzHqOX3MW/JbOVA7IKg3cJovTWJ9z+u7A/3nLBLKOInXNHBu1CQlz6UNUuCEk13UaV/QrA5l6F1a7e/ws1lBoc= 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=Hg6/ZO8W; arc=fail smtp.client-ip=40.107.237.47 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="Hg6/ZO8W" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bPb814Wn5eQ8GPxDnSBQ4xWUPsucn8d6Sw3YGd+BYEnCifFkzahgojspVK6vFx0+DsJNvBMhFPfmmZff2TMX7fG49QS3n+zSBTuQIQDN7LyR1S/+EX58Vn6QS2XKs5dBj4+jpye4J3t+f8NFa9cWyO5P2vayz+j04V1k75zjMrJ57IeSqfZSfPuLQ8J7Xzlm5mWQk/3xnRE1345YCPjgR/jyrlU1IWwUR07CQclATnZ7Zi4pLnceJctudsAxcH5sHAPWmeEXt546U1Cq50OIZOTgSbYBlGBDDOsKTwhAlSjJ0A5rWadihQt/92YiuyrPu3en5vx4tfe4UypkLuKgow== 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=iavqTK3Z0Q5LOgGnt9tdCLPCGq8dEOs5pyi8+sX5hGE=; b=q9QTRgFFRiCVgi8zZLuMibupurkU/RPAZZuk4OSRqpYJhOHiLL8Z0tE7RPOJnLxYm7kKUbMbRTcn2ogA6BX0wAXDlD5wWJQKp1JIrwfto8Kne/kOTkvtaN215laqxkKweL0fcDuip1owJht1L14EBgCoLppd++dLIxMkD8TwLpbkSPSCScKn+WdCg2IT6eew9vL5yVRJ6qZ6PtQGKiCI1yorUa8pPBRONno/8wq3F10vuK5fECbS2MWGRSGJuENfMNBFAaI6QtaKbavTxSKCdn+3Je+pNbRH8cUc6l75eOZA5XeSpAYpEJ3Y92Wdw7y/qCT8xj30dyMnsgana2WdJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=iavqTK3Z0Q5LOgGnt9tdCLPCGq8dEOs5pyi8+sX5hGE=; b=Hg6/ZO8W5seJYg1hgPy8xLX9TTzxfkE5ZUr8VxdOlGbfXBUfxWlgWLJbMc28oCJnb3TcGVDo3Es2tWate8RxyFapl9yRJFfSt6K5OeDrgbdRLjBc3cEffB0tHSNjx9FkN39x95j+CNw+pfUeWdtPqbGZBznHCmMLWRz0M26eVt8= Received: from BN9PR03CA0071.namprd03.prod.outlook.com (2603:10b6:408:fc::16) by LV3PR12MB9332.namprd12.prod.outlook.com (2603:10b6:408:20f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:56 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::99) by BN9PR03CA0071.outlook.office365.com (2603:10b6:408:fc::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.24 via Frontend Transport; Mon, 10 Mar 2025 16:40:56 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:56 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:52 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 18/36] cpu: Define attack vectors Date: Mon, 10 Mar 2025 11:40:05 -0500 Message-ID: <20250310164023.779191-19-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|LV3PR12MB9332:EE_ X-MS-Office365-Filtering-Correlation-Id: 34f33e78-db02-4d57-014a-08dd5ff254d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zK0AH9qhkLI5wPEY5biMYSxK6+qT4WIrYE1K29+I+V3wGuT4setSEtYkSHHe?= =?us-ascii?Q?fZHlu6K8e1ND3g610I5pzZNJ60TzjvhKyw9NmAE+G2yLO3KXfwMRtD9aDvMw?= =?us-ascii?Q?9VGVXN3YgI6DM5LfAyKI+zvTxrKwpZIK3mlGCCAW0Zw2S11tntC5poaXZwvE?= =?us-ascii?Q?LjgOSE5Gi2YblRLt/akIb2/R14htclD74FHUdgU6WQradv/SF6fg2KxhYawg?= =?us-ascii?Q?tY4VHSaXzewPQCzMrVd9wzGnBhOPmxgDvGrJrjFXuaZOmFJ5uLK/E8ynSb5E?= =?us-ascii?Q?9DeggfK9bARlksAR242hOqfCf7wgztqfhJXvjt2sSnUDE/sODkH0dWQXG+fz?= =?us-ascii?Q?WLaQfDTkiO1gXrcfObw/bqueOij85DRcakZtgBh9agOx4PcYpQLzdYy9hZ7d?= =?us-ascii?Q?K74MS/Xe8iViVRJufpznIvXiA3G7pvs82Q/I6KlaKyGbpqwQTzw0mjXFPm4K?= =?us-ascii?Q?Y8fRC/DUcVkD9lw+VJB+LWnqph+TO/sGfLr4lj4CH0Ws9E6aklpDqOUHwo1g?= =?us-ascii?Q?8svheCwxiuErvAze0kCt9jbr1YSdaX1eHGk4elDBMg2UaXmiQT5jKz5Xxer1?= =?us-ascii?Q?aEhs/G2pooeq9snI4VMAcFb+87HWiCNoJDH7aY81e7lAAqLJ3nUaE/5wulTt?= =?us-ascii?Q?jETqfFNpQR25j8mTpZfK2CVR2iYWof7vm+iAuyiOXPipdY3vRtvPSPYff5gS?= =?us-ascii?Q?EUjtLovE0m2vnQQGgAv4mRp7uqmfICBiGSXE/iPK2FrQxskYhWIgmlupo9ia?= =?us-ascii?Q?v2kP11PooeMtXtBhtctIWUCU5KlxQWaziG3eJeWTgOqQfYXF+fbRoG+7HdKz?= =?us-ascii?Q?7cnuVNe/MGRg0LCCveHgqHIrnFMjD0VZ6goaFrypuXfu2IbdrpsXn1wSiqIt?= =?us-ascii?Q?OpFUJ2cjUhnnQsiZ2phnaWuJMpQzvZ/zCph1ONRwERNUj409uSs1ehnUr0Mk?= =?us-ascii?Q?lPSbRm+/huKmRFFN7v/kC0yoBvIQnz88lM8pv6lo4rvbIjS4T+rSi6xMMvTr?= =?us-ascii?Q?aKoXMtkq7MHfqdn6tM5Zzh9wm6M7lHZAteh0utXdLBBPurFaRHAeqgSfcIP1?= =?us-ascii?Q?XsElL6CG49hcB8Nbg6Lkrnk902mvmpukYNz4OfFeilqFaO0nCV1uQ6bNDwIP?= =?us-ascii?Q?EZG46r4GudZA/0So+EcZNeJ9eVIw8GKopCMxp6NyOD3uJsTBBhs6sJsnoHm1?= =?us-ascii?Q?PR1cUNpFYxhXxuZ7j0ombM5GqwPlq2cz6ADPZG9sKzcbucrweSFwcj92DzLg?= =?us-ascii?Q?Cqw7WjTEvUk0d2CBKHgY5Lep5GvRYToEXTZuDZaW3aHHXDDjxUjmhOUwE0Xw?= =?us-ascii?Q?FgRomcM34FeHl4tT22k4EwBSnNikKoewMkfglEzEv+497UHbb+6Ll0MRs/O3?= =?us-ascii?Q?mzN7PYELpwICS26nsaSXN94wFWor7pXuKXXhrmAyfdplAIvv7WFpNKIxmibl?= =?us-ascii?Q?Lqvgq4HST37EmqA7KfLVWn5WrUZGvT9xX5lgIixWNGm2WrqaNLTlIQ=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:56.6111 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34f33e78-db02-4d57-014a-08dd5ff254d7 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9332 Content-Type: text/plain; charset="utf-8" Define 4 new attack vectors that are used for controlling CPU speculation mitigations. These may be individually disabled as part of the mitigations=3D command line. Attack vector controls are combined with glob= al options like 'auto' or 'auto,nosmt' like 'mitigations=3Dauto;no_user_kernel= '. Cross-thread mitigations can either remain enabled fully, including potentially disabling SMT ('auto,nosmt'), remain enabled except for disabling SMT ('auto'), or entirely disabled through the new 'no_cross_thread' attack vector option. The default settings for these attack vectors are consistent with existing kernel defaults, other than the automatic disabling of VM-based attack vectors if KVM support is not present. Signed-off-by: David Kaplan --- include/linux/cpu.h | 20 +++++++ kernel/cpu.c | 129 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 138 insertions(+), 11 deletions(-) diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 6a0a8f1c7c90..476c6dfe2c03 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -190,9 +190,25 @@ void cpuhp_report_idle_dead(void); static inline void cpuhp_report_idle_dead(void) { } #endif /* #ifdef CONFIG_HOTPLUG_CPU */ =20 +enum cpu_attack_vectors { + CPU_MITIGATE_USER_KERNEL, + CPU_MITIGATE_USER_USER, + CPU_MITIGATE_GUEST_HOST, + CPU_MITIGATE_GUEST_GUEST, + NR_CPU_ATTACK_VECTORS, +}; + +enum smt_mitigations { + SMT_MITIGATIONS_OFF, + SMT_MITIGATIONS_AUTO, + SMT_MITIGATIONS_ON, +}; + #ifdef CONFIG_CPU_MITIGATIONS extern bool cpu_mitigations_off(void); extern bool cpu_mitigations_auto_nosmt(void); +extern bool cpu_mitigate_attack_vector(enum cpu_attack_vectors v); +extern enum smt_mitigations smt_mitigations; #else static inline bool cpu_mitigations_off(void) { @@ -202,6 +218,10 @@ static inline bool cpu_mitigations_auto_nosmt(void) { return false; } +static inline bool cpu_mitigate_attack_vector(enum cpu_attack_vectors v) +{ + return false; +} #endif =20 #endif /* _LINUX_CPU_H_ */ diff --git a/kernel/cpu.c b/kernel/cpu.c index ad755db29efd..fe00ab81d682 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -37,6 +37,7 @@ #include #include #include +#include =20 #include #define CREATE_TRACE_POINTS @@ -3178,8 +3179,38 @@ void __init boot_cpu_hotplug_init(void) =20 #ifdef CONFIG_CPU_MITIGATIONS /* - * These are used for a global "mitigations=3D" cmdline option for toggling - * optional CPU mitigations. + * All except the cross-thread attack vector are mitigated by default. + * Cross-thread mitigation often requires disabling SMT which is too expen= sive + * to be enabled by default. + * + * Guest-to-Host and Guest-to-Guest vectors are only needed if KVM support= is + * present. + */ +static bool attack_vectors[NR_CPU_ATTACK_VECTORS] __ro_after_init =3D { + [CPU_MITIGATE_USER_KERNEL] =3D true, + [CPU_MITIGATE_USER_USER] =3D true, + [CPU_MITIGATE_GUEST_HOST] =3D IS_ENABLED(CONFIG_KVM), + [CPU_MITIGATE_GUEST_GUEST] =3D IS_ENABLED(CONFIG_KVM), +}; + +bool cpu_mitigate_attack_vector(enum cpu_attack_vectors v) +{ + if (v < NR_CPU_ATTACK_VECTORS) + return attack_vectors[v]; + + WARN_ON_ONCE(v >=3D NR_CPU_ATTACK_VECTORS); + return false; +} + +/* + * There are 3 global options, 'off', 'auto', 'auto,nosmt'. + * These may optionally be combined with attack-vector disables after a ';= '. + * + * Examples: + * mitigations=3Dauto;no_user_kernel,no_user_user,no_cross_thread + * mitigations=3Dauto,nosmt;no_guest_host,no_guest_guest + * + * mitigations=3Doff is equivalent to disabling all attack vectors. */ enum cpu_mitigations { CPU_MITIGATIONS_OFF, @@ -3187,19 +3218,95 @@ enum cpu_mitigations { CPU_MITIGATIONS_AUTO_NOSMT, }; =20 +enum { + NO_USER_KERNEL, + NO_USER_USER, + NO_GUEST_HOST, + NO_GUEST_GUEST, + NO_CROSS_THREAD, + NR_VECTOR_PARAMS, +}; + +enum smt_mitigations smt_mitigations __ro_after_init =3D SMT_MITIGATIONS_A= UTO; static enum cpu_mitigations cpu_mitigations __ro_after_init =3D CPU_MITIGA= TIONS_AUTO; =20 +static const match_table_t global_mitigations =3D { + { CPU_MITIGATIONS_AUTO_NOSMT, "auto,nosmt"}, + { CPU_MITIGATIONS_AUTO, "auto"}, + { CPU_MITIGATIONS_OFF, "off"}, +}; + +static const match_table_t vector_mitigations =3D { + { NO_USER_KERNEL, "no_user_kernel"}, + { NO_USER_USER, "no_user_user"}, + { NO_GUEST_HOST, "no_guest_host"}, + { NO_GUEST_GUEST, "no_guest_guest"}, + { NO_CROSS_THREAD, "no_cross_thread"}, + { NR_VECTOR_PARAMS, NULL}, +}; + +static int __init mitigations_parse_global_opt(char *arg) +{ + int i; + + for (i =3D 0; i < ARRAY_SIZE(global_mitigations); i++) { + const char *pattern =3D global_mitigations[i].pattern; + + if (!strncmp(arg, pattern, strlen(pattern))) { + cpu_mitigations =3D global_mitigations[i].token; + return strlen(pattern); + } + } + + return 0; +} + static int __init mitigations_parse_cmdline(char *arg) { - if (!strcmp(arg, "off")) - cpu_mitigations =3D CPU_MITIGATIONS_OFF; - else if (!strcmp(arg, "auto")) - cpu_mitigations =3D CPU_MITIGATIONS_AUTO; - else if (!strcmp(arg, "auto,nosmt")) - cpu_mitigations =3D CPU_MITIGATIONS_AUTO_NOSMT; - else - pr_crit("Unsupported mitigations=3D%s, system may still be vulnerable\n", - arg); + char *s, *p; + int len; + + len =3D mitigations_parse_global_opt(arg); + + if (cpu_mitigations_off()) { + memset(attack_vectors, 0, sizeof(attack_vectors)); + smt_mitigations =3D SMT_MITIGATIONS_OFF; + } else if (cpu_mitigations_auto_nosmt()) + smt_mitigations =3D SMT_MITIGATIONS_ON; + + p =3D arg + len; + + if (!*p) + return 0; + + /* Attack vector controls may come after a ';' */ + if (*p++ !=3D ';' || !IS_ENABLED(CONFIG_ARCH_HAS_CPU_ATTACK_VECTORS)) { + pr_crit("Unsupported mitigations=3D%s, system may still be vulnerable\n"= , arg); + return 0; + } + + while ((s =3D strsep(&p, ",")) !=3D NULL) { + switch (match_token(s, vector_mitigations, NULL)) { + case NO_USER_KERNEL: + attack_vectors[CPU_MITIGATE_USER_KERNEL] =3D false; + break; + case NO_USER_USER: + attack_vectors[CPU_MITIGATE_USER_USER] =3D false; + break; + case NO_GUEST_HOST: + attack_vectors[CPU_MITIGATE_GUEST_HOST] =3D false; + break; + case NO_GUEST_GUEST: + attack_vectors[CPU_MITIGATE_GUEST_GUEST] =3D false; + break; + case NO_CROSS_THREAD: + smt_mitigations =3D SMT_MITIGATIONS_OFF; + break; + default: + pr_crit("Unsupported mitigations options %s\n", s); + return 0; + } + } =20 return 0; } --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2043.outbound.protection.outlook.com [40.107.101.43]) (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 EFB4923A588 for ; Mon, 10 Mar 2025 16:41:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.101.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624867; cv=fail; b=fIFqPUGGdJxPBBIM+xkTcE2oSp4v20f+1Kk1V4t23Islfkq64T4XATAmTZ1V21H78j4rFKfYNyAR9rAwCFT03ZiK67a9JzicDkxJA1HYbVm0ZVuRzQIAM1IdwBxxVSxOZCry1l6GhGv7Zw3UNGYwzH8ic0PPte6MQIvqfD86nsY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624867; c=relaxed/simple; bh=Y+FmxaDm2QGNNfX8AY4gVfZMs17B+IxDp6QcTMtY0UI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cRl/orG2ZYRjYWQ2IbhDkvahNuKylxUjAhwURY5WDLxImMBjZaf1XcqBXjs1jice2eC3SfFJKO1SpIDg4EenPY0Cuob3Q4gysxJ/BGuw4UPb3zzsnawmPlDiQCktIhciYx2z8BdLuZIXeJ9WL2J3c6dJM04Z6wbgbqsi9OfN+os= 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=ofCCMVu4; arc=fail smtp.client-ip=40.107.101.43 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="ofCCMVu4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e48TpdY+dRZ2VEf/5ZORkTmBlyE1piJjZY9GK9Wfhlf/iy/kjxMJWN8JoSpfFREEd4jGWHZgSpmkvuETUuheJ3zJ5hqcHnU+2Bi5We+3S9WTw6iLyWOrdmu34eOeuY4VVRfHtn1NeCBQxVGRxOO/sp6KFGd+VyovfvZDtm61iEcEAGInA5tIXrI0BbbV1Kv6GvaIwkRwna1hODuxqiADzCP9Zp1aajo+OhCzXJWA6ia9dcTftubo8NLIKGxPODemuWLBcEa5F/tTSvVsRSO8Liy77GvN54iuDXrBDWx6UonlNmA0Z383FbnMjPrE9CyjvNssArZxDGlftFkie5wMiA== 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=yQDd0K7AHI+w3sAzw6GP8dOWrlxAKW73yxzj4TV9WqE=; b=rpPHMkdQpPvL5urJ8+/gQ6aMfGNY5ZRgui1D4nOfwtrRU/b7gJPeU0jdUUMtJn8TlXt3zboEeJjf0HA8e45HMvLwSO5eRhDR5jUqHwlNELqzhDBAKy+kZYux2h6uQyFrmEA3KvZBv3UkbaFEGZ87uEt3BcxsNVfuZx1VUP+bYX0r8gAK77olPOIHQQ0AyJ72HoQMAo9g46PM78iqQ6YRekPdyRNZ5O1RYF15/01f/210UiPUfTtdc6OWBzadvHvXIq13Vy9nTDOaQ8ZLsgf8a4mst7cr9tGN//Q9lSQl695oZt7XqW8xZiQYQ3kIHwsBrUFL+IQcrBEhO7QQ+PchKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=yQDd0K7AHI+w3sAzw6GP8dOWrlxAKW73yxzj4TV9WqE=; b=ofCCMVu4iqsDChtvDU5mlNOtojnF+DZ2wzEsEKk+pAjSwfe8lS0xP0jwH7eWOA7loQO0h2PbVUpekiyRUGj8o+5pvjzQ6WQNFsSJS3siEIUFEwglRoClpnOPR3v0PfiZA/AdoIFK46DPkP6+Uv8cLrA43a7jga3uxFYa1htiOFI= Received: from BN9PR03CA0081.namprd03.prod.outlook.com (2603:10b6:408:fc::26) by SN7PR12MB8436.namprd12.prod.outlook.com (2603:10b6:806:2e3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:57 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::40) by BN9PR03CA0081.outlook.office365.com (2603:10b6:408:fc::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:57 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:56 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:53 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 19/36] x86/Kconfig: Arch attack vector support Date: Mon, 10 Mar 2025 11:40:06 -0500 Message-ID: <20250310164023.779191-20-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|SN7PR12MB8436:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d6ec2b5-c083-480e-d791-08dd5ff2550d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XPpx9G+SX6C0vjVa2bA/2zLhcMiEszxz7VQiiwowVaC5iFkm4HozscdTZFps?= =?us-ascii?Q?ZwcpZDwtjKJkX9sP/sTkRC9ZY7SfyZeItiRQ1gen4gKYcyFLtxOf2kYQ76Z8?= =?us-ascii?Q?UltyeGvd/SiGPhlczv7tS5+Qs0n79ks2L7ZXddR81awGfpZtMl4HqJTNn8Hq?= =?us-ascii?Q?+obrFO4PuFxfLoU9AJu/t0a9dYVx15ik3op7dTNsAP7LdST1YuHPp5yvv774?= =?us-ascii?Q?C+RsSj1dbZt4cwwK39L7sWwv9ww7z+wqp3/YU4rfTEZOHlo7sT+/THOYqro4?= =?us-ascii?Q?EN/uHMVV3VhivcurMqqwYxPjdypHkWs6vniHIMHq4oyU+elu2I3uKjpnusty?= =?us-ascii?Q?e8GrQGMK7ZKfOtVptr0LdWlsYfUIUM0fK9YC2LEr3gFgH5ygY+73HaxsVseo?= =?us-ascii?Q?4M5beOw7QUQfLFluMUpeKETMaRU2WRoTSff8fELuN2Ko+KHa0i36/XfvHYWp?= =?us-ascii?Q?9ZhaSiaZVbRuI41+Jq0lb+3uHT/2ObdRWjIdv27CaB0vCpiiJzqttbRhrWAw?= =?us-ascii?Q?n6jtd8fmfdh+MaZkOE7jUQ9non2Y9Jgd2+xTFbcdSiG1/Ak2hHz7HpjKjPts?= =?us-ascii?Q?kPeIlLNFRzd85K9ClXrQtkN6dLsRXWcEE7oio0gnbCwQvbxIPG1FvXfShMXU?= =?us-ascii?Q?Kkl0i9qHgBKsCd6xYr8PEOYGouYlIG7Qs8zBP/XAuPg31XzYsjBcIqASrGCE?= =?us-ascii?Q?KwEexlQFusCOAUT4OQZrColetGD4XTg7ijg4i3WhaHfOO03AjdCZUhEOh1HD?= =?us-ascii?Q?0iwBoaUKhBeragLUbY/8b1uPPXa8CXRmWcaMqdva2UHlfouzZlBPcsyvOzKe?= =?us-ascii?Q?OxEZknnaeZc4xzJgRV1KVjmp0uiX9Rbtkr/AtySXh5Or1BdpzUmdAb245/AY?= =?us-ascii?Q?81MBthtu94T6RKeVSW25ZxLtTdWHlxefK4/oUY8Hd3Cg+k+eu4ThgVv/n1n8?= =?us-ascii?Q?fdYNzaJTZJIlcsoDQ1jtXw5mCaDhgltRCXdOgogBsh9DbIIjg2nlsZvaQ03l?= =?us-ascii?Q?E6ruaf/oIFXEFvwaVstIqJiIl7QnZTzEVeZYI8fUFMAU/tY4HmbvL3DuTeTj?= =?us-ascii?Q?rdjZf2eXCFRS3/O2ZWiaq5L51+C5z0GMI7nu1bFn09Aag9q+YC6lAekZ7WOw?= =?us-ascii?Q?89DxH77zvD+xbokLCc/tBi4lfJC+DwLxSlqD2Uao+AidbvHEspLrRVNeo4PP?= =?us-ascii?Q?hARmbCM9YfAPAyNrBHM6jGvAHEwMJ/L+w7bFDg56B6C9aksvOf8YYJgvYWtR?= =?us-ascii?Q?YtB+5GEL46miWbj/E2dgf3LhDAkRwlLITEwTeRD0MppSRAXcSi7KM1Qur2hX?= =?us-ascii?Q?7Q+CaHIaEI+RRO35yO5mwRdu1luqPQym2gc4AF0to1mpsMbJlCVuVeM+nCsT?= =?us-ascii?Q?HRCYsbYg0BrgdCbcOyfZLnwFqyxnNOsToIn2aKWve5g+k1q0OAgfc1gCaOUB?= =?us-ascii?Q?9Xjj0XqqPb1IYo/sbXhLT1uY3gMz2xXdOqT57YxGXRLRkfLTeLgxrw=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:56.9704 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1d6ec2b5-c083-480e-d791-08dd5ff2550d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8436 Content-Type: text/plain; charset="utf-8" ARCH_HAS_CPU_ATTACK_VECTORS should be set for architectures which implement the new attack-vector based controls for CPU mitigations. If an arch does not support attack-vector based controls then an attempt to use them results in a warning. Signed-off-by: David Kaplan --- arch/Kconfig | 3 +++ arch/x86/Kconfig | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/Kconfig b/arch/Kconfig index 9f6eb09ef12d..cfa65367a08b 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -1748,4 +1748,7 @@ config ARCH_WANTS_PRE_LINK_VMLINUX An architecture can select this if it provides arch//tools/Makefi= le with .arch.vmlinux.o target to be linked into vmlinux. =20 +config ARCH_HAS_CPU_ATTACK_VECTORS + bool + endmenu diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 1665ebaba251..cb1c03021683 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -72,6 +72,7 @@ config X86 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 ||= X86_PAE) select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI + select ARCH_HAS_CPU_ATTACK_VECTORS if CPU_MITIGATIONS select ARCH_HAS_CACHE_LINE_SIZE select ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION select ARCH_HAS_CPU_FINALIZE_INIT --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2042.outbound.protection.outlook.com [40.107.220.42]) (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 E42A223956C for ; Mon, 10 Mar 2025 16:41:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624863; cv=fail; b=gXEGkk3m+S5SxS/vqwKIGDVHxoQr/4YhAOfDjrIWGLDnLUAhyopiK+hn8ns74xnlDnXQkMD8jyJxG6pb0znf2mSxUYZIzJQ2Bsfuhc2UxTw262Z1fojmMwR201BqUIT4VM9+w/hIB4hmTqObFlSuHq65zlDikFmHpQFz839W/D8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624863; c=relaxed/simple; bh=CpJAcmcSDLuLxdygDD+eANgttHhDglaTj8kshW8szvk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E3/OLfx7fh+VJsjeVHjxBK35fDZxSIOQa9JRKjLduY31DTv/vjxVJzGHRDxeR/N2iIcG+P3wOX+u2KmI7WCuL+ZSddB1BQNUUv7lVJIXuT9vZFKHC1+MUu85kzmxqwCs+Zs4NzolEmZTrsgklTb5DYTWO5JdKMoVf8BRdr65qrU= 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=qhzcPus+; arc=fail smtp.client-ip=40.107.220.42 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="qhzcPus+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A8IM8i1FWYnOO91tC0MlsyDwR6Nn/mRTxZw3b7A4WRL9NXW0sMfBOrz3ISE/zcTxiRpBEqKQG6BGnN0iu5keNwGAmr+QhskUWZHMoTSPKthF4zSDCeb+lMlG8WA+idDmjGfi8Zh+ihx8Gu/ZmX551fMtSXxBKe+PoOmZtWbk3eYu1sakjPlB9l+Cm4ZjUGldf8TbrtXFsGZOk/jO28nzdO88Q52VHE5RBjxRE4jGpLCgITnrPLA+PypnbVHxe59z/bu4/EoHk+HQlMk+8VhxEhKe0jJ7/AP4nXmf9ZwLYTRR3ulK1yHqOTIs1F3Oxj0JWUTpzJvYt9gp7Zwyyg6keQ== 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=dLd6vudqNXngD79+iJXiJtcdVhs/ypYtZnm0zUKGVb0=; b=KuuHcVXNzLCXqjdeq0oErpSI2OMOr8N8zlfXtwI/QdWOPvcMIjsCbCUajSBx5wA2XT7GZH8lW0w1d3WjHLinB1ZgCwoxoOtGOnuwnqmfqW8GKtZuY5ThxAGcG2GtMF2n2w6IQ+1cnCUdZ36yk9PKVA4PSZucPXPaKjqJmL59R9LkGt5IBqvbZVoLa26zZMMMJUtYgM8e5XP+SX6g5veij3CC/n4BrkW86oGeJlg1TROzkUMGHPBOuRwMU26OD3f9PvmOCsOCfXiGaNAGG9rc6oK60+aJtlS66yasrs7kGC/MsN7DVK1X/IV/Idhoi4pL33kXrdkUFuwhW8SejeYiXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=dLd6vudqNXngD79+iJXiJtcdVhs/ypYtZnm0zUKGVb0=; b=qhzcPus+Ny4MoiVogzv6jCCruso1SpvDy66qfd+8g4CfhbW+Cn66soL20U6linxfCrYLaTDq3spYU4yGi5qcylbJI4H8e/+Z4SnHL6oIMQhKn07McvRjCi4YGC5g+ehqHbaQKM+G1UmGiiwHt9lvsW8ypRUq85TZnMqihL2TbAE= Received: from BN9PR03CA0069.namprd03.prod.outlook.com (2603:10b6:408:fc::14) by PH7PR12MB6762.namprd12.prod.outlook.com (2603:10b6:510:1ac::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:40:58 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::88) by BN9PR03CA0069.outlook.office365.com (2603:10b6:408:fc::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:57 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:57 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:54 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 20/36] x86/bugs: Determine relevant vulnerabilities based on attack vector controls. Date: Mon, 10 Mar 2025 11:40:07 -0500 Message-ID: <20250310164023.779191-21-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|PH7PR12MB6762:EE_ X-MS-Office365-Filtering-Correlation-Id: 31aac815-b10b-4fb0-ac7b-08dd5ff25563 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JU6YiYDyiqOGFLTdzR468FkJnKMMNZaMKUkLfZyEJ42hyu0P5+wlRWUD0HIW?= =?us-ascii?Q?FScAJ7+QQg19kc77amSalJ29bdPK7MFGD9JiFZBNNM10juyPRb14bhCRDAhW?= =?us-ascii?Q?96uQvLwn/rIg3lhi7TKnp9Qox/Z7Pjda+lA+PjyEnPcmPAs45JfJgHPBELi/?= =?us-ascii?Q?tykmwnptgR513hbetAgk53Bg5k/kNlT45dwUa0y+DN3sXGIBdXRfFXziqJVE?= =?us-ascii?Q?jIJpHPW5UI0m8hRlsTzGWhKiap7yKIgBAEFHgtgRNt1jmcSrMFGKyt16KEFq?= =?us-ascii?Q?sVFyXoaZnbrDMLta4CZfspknEb4D1uHazCFNu0HyJz6BleoSV9hNBvE5zJvy?= =?us-ascii?Q?sZiJELCAa404kgsBXif8OEyIA6y92Ak9LxmQNrGOMxau/VfKO8WVvPFxbaAG?= =?us-ascii?Q?tr9AF9JOAvJ69j3SE7GA+fOFqTVv84QXGrUrv2kyJjsyfXQd5oAwbNnXo1lB?= =?us-ascii?Q?yI9IRczLdHzbm041h5lvHb/APErQHvIFUM7ZMbCkoN54IXfzUbgEO487fGJT?= =?us-ascii?Q?8n0GfjHjrKupH4lYxwc2OgDpp7tWuGgjKnRNivi4L2FM5weLqIvn/NWtFodH?= =?us-ascii?Q?TNS3iwnlniNLY1gLR44qLTOdY1IBfmwhS6tPtB30j1Ols/MerdVkO2OmXI+X?= =?us-ascii?Q?XYWi41l0kJrB7fphjm6DAlXN9LduFo+foow+R18gioeFWrXHxVBTeN6NlxD2?= =?us-ascii?Q?PY3oq6nm011k6NUK37zUaaqSFpTk09e/BN9mLwIBKYvvy7QNJiwy5UYNiOb6?= =?us-ascii?Q?OUZ3pGXrSqPdS1zldI+9TrMPRF5Ag6HAdSRIVb6gDLYGAIpZlzRydkdR8rJh?= =?us-ascii?Q?Nin7AijMjbzAJYiLFsCTOVVJpl2/Hor9EyFQW+UAf8vsWTDEldQDJwEUl9C2?= =?us-ascii?Q?03EWsIE8OQeaBb/J2izrCW1RA3py4vd0O1PSq58XGW9c0+YHZvq0t+4pYZsm?= =?us-ascii?Q?l0jycs4U2dqLL2clPW1geCwRTTzkOf3L1vhdgUe6hP9ZDG20r+DvSwUMkkbe?= =?us-ascii?Q?/eqI5Pwe5QDYkZH12/ts9yphtr4NYJLeFiMrGz1t23G7upN4q4AuiF/GabEg?= =?us-ascii?Q?H1u12KyoT/ph/08GBKz9hPSCUXwDBmWp7vUAKnrhwV+KNgksJCgedE0n2wb5?= =?us-ascii?Q?wRXao4qXv3kVjZPqgeQDOsRQsqH8ozaMupTAfpPFHnZUKCyj3xAw+8Zp28uZ?= =?us-ascii?Q?E9NoDH/rs+v2j6Jy595RJ1KU08sunVtkR+q7UPATyxlJxYEAC8TJGAr5+/eu?= =?us-ascii?Q?ZKmwtjR1O53vK6iqK+3xGSkZeZ3q944SlJfomj3cJOdUie3O/Z/1CvCBthYu?= =?us-ascii?Q?Pmw9KdnVHylrI1pOuMURX4yH2NYhxo6RGkFCrw3GmWzRXwVOE9A9nrJZpOPx?= =?us-ascii?Q?lrlj3M1IIxVECXTn6hF/1IQREL16zHrcLBvvQ7zaNW2jJ3ipo1I5Ap8ZhVnW?= =?us-ascii?Q?quFr8ZIyRtK02OM+eKY5RfAVuQFCl8A1UTPpiH8ZQ/salEPDKQZFrA=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:57.5329 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31aac815-b10b-4fb0-ac7b-08dd5ff25563 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6762 Content-Type: text/plain; charset="utf-8" The function should_mitigate_vuln() defines which vulnerabilities should be mitigated based on the selected attack vector controls. The selections here are based on the individual characteristics of each vulnerability. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index d48b0a941b2d..2323bfbcd694 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -300,6 +300,61 @@ static void x86_amd_ssb_disable(void) #undef pr_fmt #define pr_fmt(fmt) "MDS: " fmt =20 +/* + * Returns true if vulnerability should be mitigated based on the + * selected attack vector controls. + * + * See Documentation/admin-guide/hw-vuln/attack_vector_controls.rst + */ +static bool __init should_mitigate_vuln(unsigned int bug) +{ + switch (bug) { + /* + * The only runtime-selected spectre_v1 mitigations in the kernel are + * related to SWAPGS protection on kernel entry. Therefore, protection + * is only required for the user->kernel attack vector. + */ + case X86_BUG_SPECTRE_V1: + return cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL); + + case X86_BUG_SPECTRE_V2: + case X86_BUG_RETBLEED: + case X86_BUG_SRSO: + case X86_BUG_L1TF: + return cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST); + + case X86_BUG_SPECTRE_V2_USER: + return cpu_mitigate_attack_vector(CPU_MITIGATE_USER_USER) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_GUEST); + + /* + * All the vulnerabilities below allow potentially leaking data + * across address spaces. Therefore, mitigation is required for + * any of these 4 attack vectors. + */ + case X86_BUG_MDS: + case X86_BUG_TAA: + case X86_BUG_MMIO_STALE_DATA: + case X86_BUG_RFDS: + case X86_BUG_SRBDS: + return cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST) || + cpu_mitigate_attack_vector(CPU_MITIGATE_USER_USER) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_GUEST); + + case X86_BUG_GDS: + return cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST) || + cpu_mitigate_attack_vector(CPU_MITIGATE_USER_USER) || + cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_GUEST) || + (smt_mitigations !=3D SMT_MITIGATIONS_OFF); + default: + WARN(1, "Unknown bug %x\n", bug); + return false; + } +} + /* Default mitigation for MDS-affected CPUs */ static enum mds_mitigations mds_mitigation __ro_after_init =3D IS_ENABLED(CONFIG_MITIGATION_MDS) ? MDS_MITIGATION_AUTO : MDS_MITIGATION_= OFF; --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2053.outbound.protection.outlook.com [40.107.223.53]) (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 20987239584 for ; Mon, 10 Mar 2025 16:41:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624864; cv=fail; b=ZAG13Pd/Lh9a3kHxVyaJM5TP6n7PxQkKHne9yBYF4A0YAOYVy1mlmGp4Ppd5M10j2F58N0E7/mRJzL3Kyd0PQ9DP7OUzUO7j1jNv8B4zaz7vZHZ+EaICTNI40rpoAE0CrxgmJ8nVqQkrX1D/VY7oox/RpKal6Ue3wGRKSPVtaCc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624864; c=relaxed/simple; bh=c8G2POovbqff3DYFiso9X4iLiHbDV/PRv3b5zJ1rqe0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Lhcivp68lOmzcqi7qPBdQU+mLAQJaHYsaepqjmusTd7dbz+xW5/ny1DS4fUzzZjaO2Fwb1NMcCsJr2r9kjuGBVSdXfT3ekLKPUn1BFQ4AFjCRfqJAyuNVVpv9TbYKm90SYJ1GIl2OalX7Tj/03GKYRZVNMozK+ffSEBNjCPq0Zk= 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=fbcKPnZr; arc=fail smtp.client-ip=40.107.223.53 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="fbcKPnZr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ARzSzUiWZQLUZoO647YLJa9Y42bVSbT3e3r6kw+U5lxwD0s53H/zt5fO4QrYFEu6ACLs+WdeqZnIWesOp6C0x8BWCuVRu0UWzXNKZJT/koFWVucRfCdGkt03tSxDlWfwhdika0vBIMnQwRYGsot8sEgMkB9Xq7xtBLVdFAESQHG0kvXvG+UmOv59Jw4GtngSK/jbVNj4djwTWrj1pRwfeKszK7HmXjdg4OOPwXGN0D0x02eD9hr2s02QkStKXRMaDXc9p/H6xDJ94tW3ULMmDocSvOwiGAQOk7L1QSvluPS9QZLDe3KnjjeJBbt5PgIXksdVc/bBHEbd2Uu7kwnsJA== 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=O+jzbKzJQFsXftXUzG259CvQI8KGT5ejKuNzQpGq2xU=; b=iDkJzER+CyTrikuCAHvoQLWJF6iHuK/vmLRuJNkv9MvJ+58wXk/Al+UIJqwUbY8knQyN1sVifXIOOP9xWaZ3UD7Xtav574bg1YJd8LJdXgHgr43yK8KYOze4U/S7bgMKgdeW9pegZQTYtwbtvSLJm9nu6NbBGE2wbUvGIkC4YWhTBRUCd7qbselSECMx6HpL6cModiLexTi1yQA25l9S/DYiLulhF2D9ndix+7+jTX0QH5/Lbv8pFAU7esKbKmFyf8MmjOYK1yzvNgAOXg4jzsn/wrHcru52U3J+Cuo0qkkW0WJoQbvOX0WqZIYKw9iQpyEj1MydAm32Iv8VTbXV8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=O+jzbKzJQFsXftXUzG259CvQI8KGT5ejKuNzQpGq2xU=; b=fbcKPnZrctQXxUGRJSPGGt1yFqlF4nRlLgj1XxOlsamLqTUliwPCNXaBFsVtckEbB2ibah/vnRtPu+2ddnDgHHC73E5K5i0FMdN6hTBAg4Z2xu2VugDzVnvtSjVJ2HsHpemJqdV7k51U7uj7gO/BOURyCbTnCgKZDBxAn/ig0v0= Received: from BN9PR03CA0064.namprd03.prod.outlook.com (2603:10b6:408:fc::9) by CY5PR12MB6083.namprd12.prod.outlook.com (2603:10b6:930:29::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:58 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::d6) by BN9PR03CA0064.outlook.office365.com (2603:10b6:408:fc::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:40:58 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:58 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:55 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 21/36] x86/bugs: Add attack vector controls for mds Date: Mon, 10 Mar 2025 11:40:08 -0500 Message-ID: <20250310164023.779191-22-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|CY5PR12MB6083:EE_ X-MS-Office365-Filtering-Correlation-Id: 47430491-b6df-4a37-58ad-08dd5ff255d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7CjdY1Ukq6R0XJZMB+otEj62QVQVg1tA3RUvPfR6uxhJq3qSzAJOfT7HiOXb?= =?us-ascii?Q?E1oKOpX4XBfJfNKd43XT5mbLdaTwywTEPPnDhXEBPKC+Yhm4J4gFxDzncET0?= =?us-ascii?Q?XwB40VsXtsSYc5HC4oQGAWu6WjzyNA3/hNbiu4whG9g7kPU33j7mx30UyVDF?= =?us-ascii?Q?pxmzDBrllm3pSyi7t/yAWOon4iA5o+HMmXuUnFU+NFZsyAM3OV5JpQnIZRTV?= =?us-ascii?Q?TeqShFkrOD7KRq2Jm9rc/bNCos2WPdtUcGOXRW20Z1pe/pssVTwaDj5oapMB?= =?us-ascii?Q?tWqj3HV6zEkiHjHYCkKnJYSnwxHcQeiX7wausvJ8ReAjl+ls3qAiT3IYbZuy?= =?us-ascii?Q?pCdhY+7effPdIyYGDrFFkA0qngs1h6xqVTwCzCy2LKCivpXGOGn4gjC/n7ea?= =?us-ascii?Q?Gnv2I1DoKHy+kYADGf4U16sQyDa7qes6O2V5w0j9UJ+kKhiByGirPrZ5h0Cy?= =?us-ascii?Q?ZNe3TZ3pgxMAbAHP9G1M2kmOzUNfsGNUp75z+xPCfLM0mKJljsUgo/Yhl1ua?= =?us-ascii?Q?lgIb/C0RyUHRJoivcK7R3iE/pSnJfDNCLGg2GVyQJN/Z5nlQupQ7LYfCiuEf?= =?us-ascii?Q?va78I8dKfPLuj0kL1vD4ps0EgU+QdDt4UOTGvIrlLYHl8VQg7CO3B2HdBNXd?= =?us-ascii?Q?o220dmh3Hx2B37Y/PM+BO33gclcDVfpriQqyGewcx9m2RPm4+yWixxpXngZR?= =?us-ascii?Q?0L9PpdDMhCMFBrCUwQrnkx2xXdfKjz/u8xuLfKpXMxSsQmy/l+HGDC1EWeBh?= =?us-ascii?Q?zllAOVwfaHfqi0t2JqEfmCK8N9PJiKlQ6h7M7K4fPtTz8t7UAEhyLuSjG/SF?= =?us-ascii?Q?JI7lw14kIo5WBnYlNJ6mMUdd6OT2Y0VGQdzM6bHD8N3ccWv2MF/Nl2tDIs3h?= =?us-ascii?Q?nHBfQdpQbaqQPVELSIwO+TviI7J9I8Nbteaon3l57FhpuSRpxlJe5u/KNDwY?= =?us-ascii?Q?F9wsqIo3K/agNOzqSHgF2KIAOsrdvfB7UyRK1qGn041U1tT0f2OR4OD5gOn7?= =?us-ascii?Q?xoTYMO2SfXwj9/pPlUmXoyKWxXgEM1brqsx9AaM2MWhGfVlIPuxnjHP6L90F?= =?us-ascii?Q?3yCebZwrHmnbxAmFfPRUy/kSp4Dq07ucmAoGUyMoQrzOceHf3U/4dmNBiJzT?= =?us-ascii?Q?4NCbDHnIAteoT6r9S2Y5fTMEJEeCUGf3a8piJjYcR39sU5QXC/oCmttQWGz7?= =?us-ascii?Q?uic14kYIMiSHoICXutkNMT0Eop1r8MB2Cgvm0LqZZvTWOFXXSAos2XAYPfCB?= =?us-ascii?Q?ZY4y5qmG/56RAW6LEImkzAL8IQH6hqWKy79A4seFZXBFheOjbmrrcOAJerIL?= =?us-ascii?Q?u2YR8YUwC/SkISzbC7UUbid846Pr83ziAKsEpJnVFt6qkhxH5UF//RRNyI0Q?= =?us-ascii?Q?Tw7HoVWgl5T13oopnooZcXyA7hifZSl1bM5WcleblmAXxIk6KuyKSJn5vC1S?= =?us-ascii?Q?kMzbIe/2GE1CsvTuRoQy+JUwmUDrG6EK+3MrkQDeguNRHTwkkORPJcqQu+X0?= =?us-ascii?Q?qZyHiZ30chM90dE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:58.2517 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47430491-b6df-4a37-58ad-08dd5ff255d1 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6083 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if mds mitigation is required. The global mitigations=3Doff command now simply disables all attack vectors so explicit checking of mitigations=3Doff is no longer needed. If cross-thread attack mitigations are required, disable SMT. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 2323bfbcd694..197ef9f2cbce 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -405,20 +405,25 @@ static bool verw_mitigation_selected __ro_after_init; =20 static void __init mds_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_MDS) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_MDS)) { mds_mitigation =3D MDS_MITIGATION_OFF; return; } =20 - if (mds_mitigation =3D=3D MDS_MITIGATION_AUTO) - mds_mitigation =3D MDS_MITIGATION_FULL; + if (mds_mitigation =3D=3D MDS_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_MDS)) + mds_mitigation =3D MDS_MITIGATION_FULL; + else + mds_mitigation =3D MDS_MITIGATION_OFF; + } =20 - verw_mitigation_selected =3D true; + if (mds_mitigation !=3D MDS_MITIGATION_OFF) + verw_mitigation_selected =3D true; } =20 static void __init mds_update_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_MDS) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_MDS)) return; =20 /* If TAA, MMIO, or RFDS are being mitigated, MDS gets mitigated too. */ @@ -439,7 +444,7 @@ static void __init mds_apply_mitigation(void) mds_mitigation =3D=3D MDS_MITIGATION_VMWERV) { setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); if (!boot_cpu_has(X86_BUG_MSBDS_ONLY) && - (mds_nosmt || cpu_mitigations_auto_nosmt())) + (mds_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON)) cpu_smt_disable(false); } } --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2072.outbound.protection.outlook.com [40.107.237.72]) (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 3C1A423A9AC for ; Mon, 10 Mar 2025 16:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624868; cv=fail; b=qaBcUztm6eGczgHRdhMVL/GS8GPye0kGX8boIjQsA4voO0FzW3nT79F4RBXy3YEPfoX5ZBdNSitlANeiHAPQE1QkXWvkth4fZZMqnA0LOlfTSM3ns0XdXJ8TSQ5jtonoKFEtxDFf3aVlTUjrH2oz6hcum1oWkknNTi7ddlA0kfs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624868; c=relaxed/simple; bh=CPO06WmSBK6APR24HpDUmH8dULZMFTUg2+Ty29upiWw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KbE/2igz4ZwPEjMoBgjFxT3uvmWpDmJ6ryTMKhmTvUPPFONrRWhOh/AvRQNT6EadhCnYXNbqpuulfxsi1JGRuQzBc0CAqnfhy85hQorTwP9i3UDDFDAQRyKCJePOd9kdgxP1l2lDOEsJ4JICbmQv/SYs4Ij76fFmuNBCxNntZaA= 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=ickeOQbD; arc=fail smtp.client-ip=40.107.237.72 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="ickeOQbD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iuDKGjY1PafkHi6kE3BnqMS9X5HQkU1Sa2oIHM2JCpO4gNgq9i54xAGYYLfoGe7mUUKjoxEV9v9vDW7xXbHb1uw5fPjwWU5BMzj+HZdLuFwfgxAfWYU33kQ/Ib61qAFzzsMQtHncpRQihKv8Nj2Gel18DmcwtnRmMTD5oC6Bd10j/GMalNgfE5MyuCBlgDnXo3aEdYvNYjepGHHGUYD7Z9lYWlYvk8NChtwE7my576jBnlCa+CdGDuuw0FYwL2CUxZFr9QXqMm1ZmY9fm0jI0N2GSrTVVwhJdltK9K7xGG0Wj6R6XistyOUMQa054y5hFGJ6IH7rvE4Ma2r3xH3/vg== 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=NcAaSiSK+WGfT5FrH5HLRqDmTkOY96NjjoM9/6W3Omg=; b=VSyFYIUaFx+Hl7aGdqC4No5lwbFp4LX+2cIDr09TBuTTksnI0s8IyxfbD2jOCCKJhgfegTedb7nevo1rOt7dCffhBLL4SwDHxhkX2AGA/5vR+vWOfB1hv602aSGSudJMWYjK3qZes4iPh87/o46Pm+VV/se8oGd4R05qaKoZNjB9158kz3hUPL/N4jWOZ/8FpMpYGluDF5mjB1BausIjB+ooIGUFEA1XNFoICfU+x0tyZeW9NejLZlP7ShbibYs8KKnLSVYtLicxPsC04/epJDzV58Qx2oUbvJGT94PbmFpp+vsq+2omMlJ6cM/tytrkhpHJFu1+gz+sgAPZ7DqYkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=NcAaSiSK+WGfT5FrH5HLRqDmTkOY96NjjoM9/6W3Omg=; b=ickeOQbDAFziM+OyAKXLcvWhngqm0mSd1UkIBK/7L8oYlHF8jLG5SHzdejXE16YGVtdJT5A1N6iLDha5ZJyEnugr6DWAjyjLprykoeTy3q65HqGdA+OKkxb8p7+Zmx3xTv4tSpUkF33T/JXKNLE/dxOj/lLYxXSoRZfylQezN54= Received: from BN9PR03CA0071.namprd03.prod.outlook.com (2603:10b6:408:fc::16) by MW5PR12MB5599.namprd12.prod.outlook.com (2603:10b6:303:194::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:40:59 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::e5) by BN9PR03CA0071.outlook.office365.com (2603:10b6:408:fc::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.24 via Frontend Transport; Mon, 10 Mar 2025 16:40:59 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:59 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:56 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 22/36] x86/bugs: Add attack vector controls for taa Date: Mon, 10 Mar 2025 11:40:09 -0500 Message-ID: <20250310164023.779191-23-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MW5PR12MB5599:EE_ X-MS-Office365-Filtering-Correlation-Id: 57e62f29-67ca-40c2-03c2-08dd5ff2565e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ASSQHHmqC6yqTaDbLc80YlTvkk3n4Mcl/tiG+Iyp5/sX+jmV0EqxPDdfo7u3?= =?us-ascii?Q?/0PJvXl+7dKerzhJzZtoS2aNp1yr5pHSXWduGGcnO2BiYW3rxhkMb3OSGtkJ?= =?us-ascii?Q?Lmjc/gI8z6LGBpzT9+h3nLTZplf7mxwhtBSFsjO/B5fQnNkDNWtp0b4q5f+F?= =?us-ascii?Q?2jEvUiidSBeHOIWI1beotNGVF1fRF10v/LFtufOAT9yMT1Y6J5OdtLZRxbMO?= =?us-ascii?Q?atTAGC+ysHy7KK97VMtt0tq2JlM96LIEs+tXU9D1mmAW/fmJSu3q7TAy/2XF?= =?us-ascii?Q?trFyIaviKkxK5R5os6d2lbIgnwH9JkZRCBhpD5TBaWgontwCQjVeEf1dLhYL?= =?us-ascii?Q?gaiFt4ZWXsbKqda9+lUw/+Qk95rP/XDwBHl5ukvIGj2qanpHEaBWaHbcE1Lq?= =?us-ascii?Q?Uwkf/AuymVZ+Y+xcjv7z8ti7pbvnO81Jj0O/WLYwsAphEpGFXpmXl4CAqPCP?= =?us-ascii?Q?qHbXTagVOtOnztw1HKnElOXmsyv7KROirqU0zfEhpVtkQz+LJruPbjwdfIoW?= =?us-ascii?Q?y8sNnHIVzuUO7eK5pPzhOyJZYxjkHFU5yMe+vtMbe6uSG7BAz5mT3Ci5IgeV?= =?us-ascii?Q?0/Gj06eTt6oGSH+jW5AWi2+/VmqkuPA+qEr7g0Lj/9nrRAdOxAspCnDknvKj?= =?us-ascii?Q?82O35Z+ZwavKobvqZRns9QTalgKg/XV5bJEmtKQwgocE9Qx1k6Tq4U9AOWkC?= =?us-ascii?Q?sGit7OvolRLj+9WUlOVWmp2Le33RLkExDO/e8QtrlV00IYSnh1ji3mojufBk?= =?us-ascii?Q?HN8bbh+ti2+nLWpaRyDuO8bBPiw1JixgBEZMS9NfzarWvHTqPxM2fHgEsZ4u?= =?us-ascii?Q?UtB2wmcMTeHjtxA2vyaqV9YkzNgnT9uK9ftJFqagcBRAXMf+Pl1T5QHRIgPM?= =?us-ascii?Q?de5ZhiuojtEsiI816chGwBqUsrkGUEuzfE6K+071CcZC8qwkiNfASpwJs691?= =?us-ascii?Q?FzK5CHQT/5LZ3ZUwcbX2ciHIJTvE4UQdntifyvF+0PvrPakYfPZlTSFvZHKO?= =?us-ascii?Q?8zjG8UeD7pMmsn3zCCS3NKqJEdHYL61i54qrtv9aV8Mkhgt3VdidG9T5Dnca?= =?us-ascii?Q?ALNA9skT9C6i2qTgafVCej3KZknx2/fBAwo1Cw2vzLFAsC16NyamI3A4hDn7?= =?us-ascii?Q?W2YHtlslYtG29SlHv9rHXj087AEJ86+X46taKeaExiBt+yIzF7GgUVvTnKoV?= =?us-ascii?Q?wJVjjIwEfTMKj8L5JTF4axa92FMDfDwlPvKG93oRrhtwakbUiOa9uEKxcfKL?= =?us-ascii?Q?JGvkGgu2812FamAiag9ClLS8Er7+Qs4PX0Beq/JQFJpwC7mMi6tuVgVKfVrY?= =?us-ascii?Q?jsNlxyQawuiThDhFWwn1w6gWsVG+74XHKEyhJVS3bYEJhudRduAdU5Yg/vZD?= =?us-ascii?Q?ecKtmXVvcbKt8St8L14PLBq9TKCSOM6wsQJtJRtB58UfzS3LXne3ptxMuU7y?= =?us-ascii?Q?VtWK33V8uF73qy8OwmTCERxdc0Tyr+5w3uevGITxMrOGVWS1cwUYZFaQLS5V?= =?us-ascii?Q?mTyLN7LiG1oHLZ4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:59.1735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 57e62f29-67ca-40c2-03c2-08dd5ff2565e 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5599 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if taa mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 197ef9f2cbce..56d3bf343d1f 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -500,12 +500,13 @@ static void __init taa_select_mitigation(void) return; } =20 - if (cpu_mitigations_off()) - taa_mitigation =3D TAA_MITIGATION_OFF; - /* Microcode will be checked in taa_update_mitigation(). */ - if (taa_mitigation =3D=3D TAA_MITIGATION_AUTO) - taa_mitigation =3D TAA_MITIGATION_VERW; + if (taa_mitigation =3D=3D TAA_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_TAA)) + taa_mitigation =3D TAA_MITIGATION_VERW; + else + taa_mitigation =3D TAA_MITIGATION_OFF; + } =20 if (taa_mitigation !=3D TAA_MITIGATION_OFF) verw_mitigation_selected =3D true; @@ -513,7 +514,7 @@ static void __init taa_select_mitigation(void) =20 static void __init taa_update_mitigation(void) { - if (!taa_vulnerable() || cpu_mitigations_off()) + if (!taa_vulnerable()) return; =20 if (verw_mitigation_selected) @@ -554,7 +555,7 @@ static void __init taa_apply_mitigation(void) */ setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); =20 - if (taa_nosmt || cpu_mitigations_auto_nosmt()) + if (taa_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON) cpu_smt_disable(false); } } --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2067.outbound.protection.outlook.com [40.107.93.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 23B0A23A985 for ; Mon, 10 Mar 2025 16:41:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624867; cv=fail; b=EB47jW0r06XuYkJmGJPnYaWzhI2/7Mr8rYErHOYIvttgSqqGgasPDWcRtFb2fEfa2bdijW+MKr+Fvjku0bgXKs7JO/Z1EQmW4cQAMryQ6IgDmQVfSgJb5+DHsV/vEGnKspO95Kf2Uz8NEU/Tr8h306mBo3eFpdrz4eJcFo6+u54= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624867; c=relaxed/simple; bh=GM3r+6M/mkcD00bFOWlBoJUOTEM2bcASUGkZEYnkblA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=q95N0d5pjSYTv+OXwZUA3S1N4IrjMu8Q9N3TADDR5fIQ9mSh285vt5aQX6LvtwbZ2F8Xvs+l7EMXtNpAxDih5FUGPcxZ7JMg5HOzvkYBdi2AcGk6wkfeOhHBW6tcSAVFw5csry91FTRU1+7JkdDBhvVh9oIe4ipTCUQLe5mLdmQ= 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=I3UOWHNn; arc=fail smtp.client-ip=40.107.93.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="I3UOWHNn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BUgvXrPh2LoBxWM0WaeY1pm/F+DI7SrLT2qm3nuhca+DbTLnJQB9r1LrsGxafC+/cUtAOlkXSZWhXTT7PoZN0QJuhOG+0+UVuyoEOBc9rAOTbH1/CeO3KHBrcX+3YRRFObzObjPN+T6lnaNuZ17pVkxWsQuANm1lZHbtRb+IXw7uWp5IDJdre/6Kt+NI/79TDk14LAtkzZiwvcR+maeK43NMgywj+zqGUmk2VZQhgQK1C3on86vDgyAdJXJu5uo9kmhs+ITagQzuxdE1lYyNetxTZWo/U6fvq4IBkue7r0/C6fv1RKrBukNLBldK1ooPVBHVnAezvM8rD0QvTJ26IA== 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=BqVMF0pcH9VH98iRHNmu5Clr8XzWbGv++L4f27a2Rxg=; b=vHOEFgMSpVRvF3UlpS1Gdpnf6EhC1vpTIH+jHdB1cxD90jg231vkLHQa8TrJ9X7Xjq8b1pfWpv/XQSiOQMcTP6DatHFggukv8NweVeziAXRObfZoVtO8Wx4c+hpustbrjElwUMZG+bXCmXHK623hPPSRy4oom5VQDM8iiEbxieXWvjjuDqQIfx+iBKUKn2vtEq9LMJElyU4CQaKHMPuOQQJDYFAOSCyzzTcqeXUXvAv8SYRagJlj0MYarESVb2fWBw06rldXbRe/tAtBYjj+PIEIaTm8SSzUzcFuUgxGyCgLJGjG5tgr7IolBWgajXHg2wxensYF3ijv7FECLehZwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=BqVMF0pcH9VH98iRHNmu5Clr8XzWbGv++L4f27a2Rxg=; b=I3UOWHNnAs22yM2EDigk7pnARGF5sv1EI3MRC9nNdgFrRhtns1+1kF/upaMeqMRvw4cf6Ar9PMSWLdJ0uCkPn4FMOtTwXUB4sZZlQSXVJydPl0KaX7Tyu3n6oj3mC+7726scONuYtojo3qwAHSPh40i+k8IvFWI8eQqWSAXMrPU= Received: from BN9PR03CA0078.namprd03.prod.outlook.com (2603:10b6:408:fc::23) by DM4PR12MB6277.namprd12.prod.outlook.com (2603:10b6:8:a5::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:00 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::38) by BN9PR03CA0078.outlook.office365.com (2603:10b6:408:fc::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.24 via Frontend Transport; Mon, 10 Mar 2025 16:40:59 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:40:59 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:57 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 23/36] x86/bugs: Add attack vector controls for mmio Date: Mon, 10 Mar 2025 11:40:10 -0500 Message-ID: <20250310164023.779191-24-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|DM4PR12MB6277:EE_ X-MS-Office365-Filtering-Correlation-Id: 360be2de-f263-4aeb-c427-08dd5ff256bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?e7R0dopvQKu2VZFtCcbb7Lf0lR+tznHa3IZF9pLccW+7YDbNk5dReup7+ENX?= =?us-ascii?Q?CO0ywO4TyksUigF42G88hEV8HpyXsqGqJQAxdssT+Kf/B0vAMWEIfIVn0Dea?= =?us-ascii?Q?1urZiQvLqnIcu0mliFr6UVXRF/qE2GNRZe8c/yfoTcTCMgIbch4AdHlMLJuR?= =?us-ascii?Q?TKJ6+zihUalcauTFDJSFgZS13GmGFYigq67GI2vOAZsFGTTHPo3OZ9e/+fIU?= =?us-ascii?Q?5RX4S/Jk7syMxdoJzs8VNS3KdLSbIEhwjElF+0PeOoazWXV7KjkE5f+mWT3m?= =?us-ascii?Q?u6zfQHLFSsy6EtyRGD+EIG5j7un1mKwicx7cpu+RemRc8U/iNObCXWhDX4bC?= =?us-ascii?Q?C5M+FNUJqdoNUe5inf6zN2RSQUgs6lvr6ZYDjMtlccxXdUwmHsNPkACwQLYa?= =?us-ascii?Q?SJgE1pwqMutas9xZ6s+YM+h6wnqOcDdEGzHp3oV8CkJD/fmfMEHsEhbkoQYD?= =?us-ascii?Q?kKf7np4XwFIIIxQIgJR/njFxSyGWxUhNUIO5faAWfm0HNkfGtdL45wQH1bbm?= =?us-ascii?Q?dlAFKzLkGJ5UCQ746esxIpIJiXOCo4maPIfdwOTLFHpp6leRSCYNNo2MeC+k?= =?us-ascii?Q?DZl/hWkHMo9WV9H+T+F1rBN91WW9dG0nYuEDvx3cksRWO0+BxaF5RK8/g1Mh?= =?us-ascii?Q?Evir0gYZ9Qo63PT14k+tuBdGTeVb7zF9MoyBXRMbcO7MGbJIdoyNGNXMBXIk?= =?us-ascii?Q?oUmszoqqPs2kP7jSEXbSt0Sd3EEQ3j6atISjh+TzPuxtkc1SbmQl2U871Utd?= =?us-ascii?Q?+IJws7yliYy/GwkRmqpMtUhrxHrJgT3ZrEYgml3COTvEK0RflzKNpn7eMo4y?= =?us-ascii?Q?Gywy6R11iSEygAK3NFgEETr8/I4ZLg9IKREin+AFwa3JjbG6KpEt5ioJBMT0?= =?us-ascii?Q?38X98jSQFI+gxMK2YuUhp73UL0esUwCVlGjirarcDXIEjPKr5g1yZZSkJO/x?= =?us-ascii?Q?GOcW6cMaBTeqM55RDscLqEO9Zp/ImDs3QN6A7X74LMHRLcPRa0DQ4swMXnfY?= =?us-ascii?Q?nrKruDyc3utA5lwf0f5dViA3LFOLzpavAGxFh3G/3zpiY+7MY95PSuCYB8dP?= =?us-ascii?Q?lOiq1ArfM5OUXfmNjzuu57acT2U522/mS6VXEHOkcEgQuSnHlc6kljxTYrHb?= =?us-ascii?Q?1tsxUwe28+z1Mznxl3pCmXDRNufPOwOn2SmPwaizhxPIW3d84E6qwaDX5O9F?= =?us-ascii?Q?6wzKFVAd+o+u/fDH1UkChHc+plJN9rXYm2yjbzRcmoMXOi6eQCIvgOQFdSa6?= =?us-ascii?Q?bWXssItZFdGCTKLVmnwvB1Y5JgNbBWVoGvF9VmV7cL3tU7TEA9LAjFfE5XtQ?= =?us-ascii?Q?RtJCGHBJ6f2/8uIvkO/zSuNqIvTeotmhs71IQoKg2GWxbYdAHU2VyTvTxMRn?= =?us-ascii?Q?8sW5SID2I8nwnrOiRq4tM7+THRZi6baswXrG4pjlhSxgqa5IuImsaCvu8b1W?= =?us-ascii?Q?Ozo/omkiGLTMoyKo8/cSiNEBvz6LXbDNONSJCzRNLE46e3WyHlHMEY9+i9BR?= =?us-ascii?Q?ulesBix8PGL+qro=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:40:59.8142 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 360be2de-f263-4aeb-c427-08dd5ff256bf 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6277 Content-Type: text/plain; charset="utf-8" Use attack vectors controls to determine if mmio mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 56d3bf343d1f..ba7c2a1ea98f 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -595,15 +595,21 @@ static const char * const mmio_strings[] =3D { static void __init mmio_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) || - boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN) || - cpu_mitigations_off()) { + boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) { mmio_mitigation =3D MMIO_MITIGATION_OFF; return; } =20 /* Microcode will be checked in mmio_update_mitigation(). */ - if (mmio_mitigation =3D=3D MMIO_MITIGATION_AUTO) - mmio_mitigation =3D MMIO_MITIGATION_VERW; + if (mmio_mitigation =3D=3D MMIO_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_MMIO_STALE_DATA)) + mmio_mitigation =3D MMIO_MITIGATION_VERW; + else + mmio_mitigation =3D MMIO_MITIGATION_OFF; + } + + if (mmio_mitigation =3D=3D MMIO_MITIGATION_OFF) + return; =20 /* * Enable CPU buffer clear mitigation for host and VMM, if also affected @@ -615,7 +621,7 @@ static void __init mmio_select_mitigation(void) =20 static void __init mmio_update_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) return; =20 if (verw_mitigation_selected) @@ -665,7 +671,7 @@ static void __init mmio_apply_mitigation(void) if (!(x86_arch_cap_msr & ARCH_CAP_FBSDP_NO)) static_branch_enable(&mds_idle_clear); =20 - if (mmio_nosmt || cpu_mitigations_auto_nosmt()) + if (mmio_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON) cpu_smt_disable(false); } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2083.outbound.protection.outlook.com [40.107.93.83]) (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 4AD2423A992 for ; Mon, 10 Mar 2025 16:41:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.83 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624871; cv=fail; b=YiMmzH0p3+GnpZPFXgkEsyhawbMIpY0/kGH7pT28NUcB9z0pkUzIgABq3T8XbW3wJ6a2rXPGPj6z2qE2aW/hqkEGfPnwbD+hfcQtPEDOK1zW32kFS066qESkiOh3G+II+uGURBMkHrGjplQc3suevYm6KLvuuNgNw1IfBFWKCxU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624871; c=relaxed/simple; bh=7xIm5VaBYwvdKd5LGqHW4horYfjlAVRkTUChu3f2g0E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ga3mUprxjo5yMI9KBTwOqpi9rqdVHLX3G6Efcf4Sdm7zZQHwWdWegGs3LeDIjc2SaPjG04E8+lgbvkE4lwy9L7kFxYXpNU6vhfxkLzX3jMCN2WOxSAFAU7wuIrLChlO3OWkkKZCq6gG5YOn5GPSJFq2zYHhFHkfpGcqGASAGpJo= 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=BQvri4Nf; arc=fail smtp.client-ip=40.107.93.83 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="BQvri4Nf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Mfx976pGb9nLmDgWVB3USWjIl+NJyIOU8clB5aU8ZVGO9JTZ95IEBIIrUtpPjGr+mrKWF86l6ofVzJUH31U1zFTSq27wWNuBuLuLt4XWStKJTk0OLUAdXcw4hgVz/KBIcXd3YI5vz9cRG/LMrtGbQPhFW22Ogb2vBZJQzDWJwszYfhiIUrYqZuLYLT8Ju5sm0RRHGqqeWD0K003HWq9z0QaZXXJdDe4lCqZHrA+WMumcGwdXlTGVwqPQ2QBahQpX0wduZJq0EXQ6NeRS8ADrS7nwE/ANV2t7PWmn9e2N7P5AeTErnzANDITEc5RkL3HWSANHAeNRCq3qqxQ47Ii5rQ== 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=gBgl2HrXvGMlgsG5zstsEtHeSHt+xErpSGwcBqAwfGw=; b=FB/dktsQXO4DjTLMjtlQ1DWuLFCYCz2SBY0muYToQ+fCbGveYAKOBK/M/Xy8ZoFWnclS+TidfCUcMh8bdiT0AZqLSkKQIJSbHyp3e5PTirEkbAYH40O5A6rH2jzh6exAQCkkpLehQdUqMzf2FsGn1etMYmtr1gxMC0ByVKG0E1nmnJWqMh1qvs2kUTSP3Sffu1xr5tYJrRU0AMaGgZ3mWBXuJ8ubTa4C6jPsUmvp026vxQO2ezcIVD9NVY1AE60hq+GgunDUg3Dq2RXQeNa4iYZ+aK0iFQTjQKeAvs1x0oeSHerptqZmuEH51zP4xz7Pt3AraO6/CfD2yVTwDzDrhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=gBgl2HrXvGMlgsG5zstsEtHeSHt+xErpSGwcBqAwfGw=; b=BQvri4NfCg/wLbG4FC3ISfBGYVMbxLuUvttF0F+c3l1B75S5rfPpBzA6d0Ey9RWypu91xPBeN40r1ZM/s2AdRzjYBIPYS0qlJq43IRcOr7mt5o+5Cd8KuPvfvupiU1LStCuKqXOxSL42efW12Q9kmr/mucK/4UB2FubPq9hTX9A= Received: from BN9PR03CA0061.namprd03.prod.outlook.com (2603:10b6:408:fc::6) by MN0PR12MB5977.namprd12.prod.outlook.com (2603:10b6:208:37c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:01 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::24) by BN9PR03CA0061.outlook.office365.com (2603:10b6:408:fc::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:00 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:00 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:58 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 24/36] x86/bugs: Add attack vector controls for rfds Date: Mon, 10 Mar 2025 11:40:11 -0500 Message-ID: <20250310164023.779191-25-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MN0PR12MB5977:EE_ X-MS-Office365-Filtering-Correlation-Id: 653ee758-0e31-401b-d2d2-08dd5ff2572f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7/Chf8SfjmYkl+pE5gXf9xHlb3lfu+wFyBG71g8ZyTtNFpMyGgy1Yuz3m50u?= =?us-ascii?Q?rf6I3E8VEajRBZsCAvaibozg9ycdbVPEkVZ/jQZjqK7O1SWe5eMLVo5tSZF9?= =?us-ascii?Q?0mky8dDx3jTn3qLXiLa1wRSQq1e6O/FQ3P3RiMNowFA8CeCW8mcka1fKa4xE?= =?us-ascii?Q?kQg8kSuMj3GL4fNbLUWK+DRNdicwQO+7Tr3z9Km5TZWji/A7CXE3gT2GfR0p?= =?us-ascii?Q?jbEO0+mATrXfBJK6acX5FG1JFPTAeUTv6sB9uHXpAXIiXSV49BaytWtn76JP?= =?us-ascii?Q?+7lyYsEkAy6nYatulhc4hqCzO2yNiKrcFPceet1LmdIERRLTSaifO2QCZ8m5?= =?us-ascii?Q?rSbpkmsnXxesqMNQ6rvYA1svnAR1/T+ODuqDyUPdB2CvN9+nKaeCuvuGyMXf?= =?us-ascii?Q?ZxWO/HZpPRWYfKW1MN8EQ3BfnZThdwNDRAxDguxnEp24jldpl6cLfnDuodB9?= =?us-ascii?Q?exlu63LJEx1OHTQ/1kzs0QZHtdF2YARGhpEW9elq+xs5+YWzBhKtWHrQttZw?= =?us-ascii?Q?LH36PzSzR7ObBNzkLnZLPEVAstl4QAVZYIjQIXC/5IwVIG7uthcYATpN0w4F?= =?us-ascii?Q?gBXlgBnza7oy18BHWXwfsO4OO47vNBP7Wqt8oWceZ6jvTFmEgDZAf7C/64bt?= =?us-ascii?Q?mySmV4RKdJrpqloLitc2MaU7u6BOlCzB8nLRMNyYG6VUybTXDlvrmfV9hc4z?= =?us-ascii?Q?g+FqdsmXV5UU5nirtBLuFP64W1NSHMfbMGx84ezgcxlvo5YxdEuymiPnjGti?= =?us-ascii?Q?NEHmzs6iZ83oB6VUQ/NZUBrIsfuJZ+URqjobRcpu/KEj0TKBuwMnVH7D1ren?= =?us-ascii?Q?OT0gSs4kAjJMd1oxxAu1xgb1IR7iymQkmQU1VT4JQ5nZZk7iKkqm951xRa2b?= =?us-ascii?Q?X/OpC96+pwsJFPaLm3RoNxV3rI9etHAmiWdKvwkFZNqsJtjtU6gm2kO725nO?= =?us-ascii?Q?q3sFi17lH34LVuy5RJsp8cLqyS8mHGJ6IKbRk7uBp8h/426En56v7mq6trV8?= =?us-ascii?Q?wzvKKKmt4KIQPchTdlAyNXGMmwKyAIij6r+uNqq6MJQdBGNmi0ebKpnb5T6F?= =?us-ascii?Q?skWpNcMYlxjidrXtx4HkB+C+69Of8dA2usRkkZxKw6gQjRaSQ8WVPbI95otG?= =?us-ascii?Q?CqhbQBDlUq/Iep0fAZWroRTT0CqNeJBYQ7EgLGn+At281k8PHDxJd6oBe3IQ?= =?us-ascii?Q?ftY6QJpmzm46Ufod29GhP918iagwq/s21JP4t9D9iNuVZc3B9lTqKFsS3pw1?= =?us-ascii?Q?QzaU3iUmFvAIbHSvkKcLNVmSZZNtHpGO4sWszH9ycOrt/5xNMJk3eDEp+mDs?= =?us-ascii?Q?lkMmJfrluFZYg/tCf+x1KYpMgbo3MW97Qys2L3zZrkkl1R73RHtXyt9Xa5qL?= =?us-ascii?Q?xXyEqHB7EDFlOHUBQU1O3u98+zeEzGLMV21idPaCx3OTpev6xfJ2zyAmOYHI?= =?us-ascii?Q?8S0EUW1dGjexNgTE0xI9NJnY5lHSjkUOhV0CYSfeev7AOwN4WZvZAf38XRwp?= =?us-ascii?Q?cPbgFFfY65fQk4k=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:00.5485 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 653ee758-0e31-401b-d2d2-08dd5ff2572f 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5977 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if rfds mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index ba7c2a1ea98f..32f850c80b86 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -712,13 +712,20 @@ static bool __init rfds_has_ucode(void) =20 static void __init rfds_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_RFDS) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_RFDS)) { rfds_mitigation =3D RFDS_MITIGATION_OFF; return; } =20 - if (rfds_mitigation =3D=3D RFDS_MITIGATION_AUTO) - rfds_mitigation =3D RFDS_MITIGATION_VERW; + if (rfds_mitigation =3D=3D RFDS_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_RFDS)) + rfds_mitigation =3D RFDS_MITIGATION_VERW; + else + rfds_mitigation =3D RFDS_MITIGATION_OFF; + } + + if (rfds_mitigation =3D=3D RFDS_MITIGATION_OFF) + return; =20 if (rfds_has_ucode()) verw_mitigation_selected =3D true; @@ -726,7 +733,7 @@ static void __init rfds_select_mitigation(void) =20 static void __init rfds_update_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_RFDS) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_RFDS)) return; =20 if (verw_mitigation_selected) --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2051.outbound.protection.outlook.com [40.107.220.51]) (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 5ED0E23AE9B for ; Mon, 10 Mar 2025 16:41:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624870; cv=fail; b=kMBpNbZqbQG8LatSz4+IWaTwXflzurD3oTJtrKWWUBr8kuILXlgjuXNXaPH9ELYIKWCzFoYeV4weiawfQgbIz/YT57S/gUl1Cg6P8/a4rVXmzb3Ps4AsMDnM3GmmByzt5MzQNUfnBroKVio7+TGWkIk8M42juaU/c6kMegsXmhw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624870; c=relaxed/simple; bh=XGJuGAFjRITU3GteQNQGL2pM8FEvuZk0P12VvtLcaDk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=b9Cyi9LUPX3fkTwl+/I8c70p0gJKJeMBiyMumvgxBAGjDeH1bsOdy4QpUCfCt2E1c909MwTNhLfwqHnZNx9QHbkJapj1jQMo96JR5fLn/fNflCC67o9Kc/qR/K+GAWawzQTUV2HUyBLnBmOMIa7ipRFMruXQg4SiEQ0JS4G2psA= 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=VlMwuOdf; arc=fail smtp.client-ip=40.107.220.51 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="VlMwuOdf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eLDkciqtB7+i/LksIpX3kO7hPEhXD1aFeNSWkTPJof6iBFM9rc33W40LhHqx2gVWwXsCEwvfUFQbJamoVqUvT/t9+EJ3gGzr2PNugycYZNI45KzO7L+EH3dJ7pA6q5ydXDgC3ka8bfrn7m94BtImgyNOSvZSe5kbaOOneYihGkDVmYTHjXf9/e5pitj5dCAsz9ZhvzcVNO9dvDLe+ZVPnTFUWnxt0U0cHVGtb2pkhhNLSsxH5Sukjr64kr3OiHHoop+uv4Ayh1Hi/FHHrPsk9y4PU3AKPFk9QapYgZofs8j2QgUZbZiOI7TJ8BQO3Z0LCK0NwNjHQsLIU57GBm7YrQ== 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=n0q/1eg3SQHwWTGatvktZp9WwAHimgc5CKLQThA0p9s=; b=df3Xa7xakPFS+1lLYvSFhj/WDoSo01B+2Ruf91wG4sMI8/QuuZmh2WRF6OajLiUr7fJR0d6O95N3xtuzAkDg8enLBBx/Gh5LpHOGFH1b0aBwqjn5uwAO/Ccobv/lmVnFxWpmfrn1Xcvx6h+uVdALffMfKprXb8f1gUIy9T/PpF44zGyP71ScefytZIErf5r5xsLDkNzl0JcAZv2cKUu8Xz1jMQ+RoohuBOFd2tji891zRjuJC3Mz/9bInQR4doQl+vNPTUCjfEfeLqSd1n42S/mswweGHgGRKDHRaKHJfKju44MRunhQSnVM3CQZh1LfC9qzpxi6ERu8ImEbOMhp1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=n0q/1eg3SQHwWTGatvktZp9WwAHimgc5CKLQThA0p9s=; b=VlMwuOdf1S0n6rbAughUeDjdn3ikbmJMpC1mNAKYMNBATismrujecKAJeTFcRkCDgLwUMyeaZKZo77ARIeSDs43Z5pctQbzeKk1rCrbszhi5Va9cXdYo8Dv1B6AxaYtWSGpJsqmCsojxT35Pwa2MgHpPRfm8aMBYxQEZ0tJwMko= Received: from BN9PR03CA0089.namprd03.prod.outlook.com (2603:10b6:408:fc::34) by PH7PR12MB5710.namprd12.prod.outlook.com (2603:10b6:510:1e1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:03 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::72) by BN9PR03CA0089.outlook.office365.com (2603:10b6:408:fc::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:01 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:01 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:40:59 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 25/36] x86/bugs: Add attack vector controls for srbds Date: Mon, 10 Mar 2025 11:40:12 -0500 Message-ID: <20250310164023.779191-26-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|PH7PR12MB5710:EE_ X-MS-Office365-Filtering-Correlation-Id: 33f5cea3-d120-4977-7c66-08dd5ff257db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|7416014|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vztZNgQpjTE0wqkhJzDw71lSvaf5T8H44hKmhlMpzB9vUE2uiziNVa0nJ7Zw?= =?us-ascii?Q?2oumRWG1nZAGPsie+m91phOQ9z4SoLrld5lNAzO3Y17tkNOgwLszI1DvxDmB?= =?us-ascii?Q?3JFLydbs6uXMi4nD2XO47BiiK5rEe0kEKpsBKE/YxhIs2aVx+xES/ZksJGcD?= =?us-ascii?Q?4agTEASyXy/GgUxE/3aX931INMca0B6tz62tMhXEYEBdDp/eLZI4NWrTuUeh?= =?us-ascii?Q?SYHY6RvU1mxXn/4M6HCJ0jXgYk6ZC1WAx5iUMunrj43P+teEZNtZVI54RKec?= =?us-ascii?Q?7eQcdj6I6GomerenE3HN1iiV0rT3qCrwqhGTxMdoExb1+y56ptNaCmwzZAQ/?= =?us-ascii?Q?gN0SAprq618nsza/Bd8saU2/7WEplHD3lrxwXCnmxBhNjUynHB0BlKfQjQrr?= =?us-ascii?Q?XkqfuP9Mp5h1a+CmLmYYj3IC3IsnAOBfjCSy42CnPKLOTvgjR2ks/J84HNe/?= =?us-ascii?Q?ne/fUdM0AUrRfyKwVbffKr/h4eIEFvBzrOb+szABj8DawX7n8Ue/FWeHXIXz?= =?us-ascii?Q?Hwq/kcpmrEcFpaTYo6qcMsyVXXhMSrYiiYMOuE8tlk6GMfpaO92cFsWHbtyY?= =?us-ascii?Q?f+CLpG7MwUzJLV8gzrlZQJ4Yf0Kc759YjaZkEG/tauEOLc21fxT1+c3Sm2tD?= =?us-ascii?Q?KhOIEnuH5/Tnolyj2aIbhz8A7KEbtb2evWjhm1c7lqOpqp+e1u5rS3lF0CJX?= =?us-ascii?Q?/fgTgBD+2xUFo6tsP8k96WGqn2Sek08WvqwTH0XTbUhdXoZtTavZhxfgtMFu?= =?us-ascii?Q?tpy6yVEbYUJRlMHacBWeR1qVwkR9A0+esq7m8ty0p4lwFVpQdiBf1L7EPDoc?= =?us-ascii?Q?SfY0+XBt89qbOGV+xj5ve68vwY218h13vX/QIVJ8w2xXjbRa8prtWFAXDoHB?= =?us-ascii?Q?dwwZMeZANyCjUlcnF3/VKBIgipUZ7AFh8+Qk3fzfZBpcT3+KXLVe39iIVbmx?= =?us-ascii?Q?FQy2PW3PFngDs75V0NdndLVdDKAIHcrJwRwTP1YdjFWalZUfI+DONrV54/6c?= =?us-ascii?Q?kLibS8cM3mQ6UMViVRXLhFsTDTnllb9HLMgkbu40CeAWI7z4WcaWK75/yWl2?= =?us-ascii?Q?/jCemagLuNeuGmOGznuKr106oMky4Dk2lLEIT32vtnGvnujEMuZYkNyDDihZ?= =?us-ascii?Q?Nx74QFeFQskbIXhsPInzuDr52irquA+KK2ZjVNpj34rU9Mby9WA2E6SVI0yN?= =?us-ascii?Q?x1BMEZFWg6pfyRPziNtyjwmJfkNvZOFc/EHkLORSsWG0BzipeSo4lxHQg8VW?= =?us-ascii?Q?v0pkVYyhD99R0OSygQ9nMTgDgbhf6qdkhNHhE+xczEp8MRqG2B8U7j+mpei3?= =?us-ascii?Q?69wCRVZnJ4bUgB/ihGlTQHqslKMAsa43lVSL7hjNmSoh5D76mQGZTxIwnW3j?= =?us-ascii?Q?jT9hsv2iW4R/N0+QqmfB698/Bhz4TkcFGVet3wXTa8+nCK32H8fJY4ynOHRu?= =?us-ascii?Q?GDUogVt8VAloOBmYvLjCT2EFWSM8wvM9VD0EYex8YeSlaE57gApWe+GOLcGO?= =?us-ascii?Q?EhqYhK5nEtsYM40=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:01.6736 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 33f5cea3-d120-4977-7c66-08dd5ff257db 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5710 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if srbds mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 32f850c80b86..148cac36a24b 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -834,13 +834,19 @@ void update_srbds_msr(void) =20 static void __init srbds_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_SRBDS) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_SRBDS)) { srbds_mitigation =3D SRBDS_MITIGATION_OFF; return; } =20 - if (srbds_mitigation =3D=3D SRBDS_MITIGATION_AUTO) - srbds_mitigation =3D SRBDS_MITIGATION_FULL; + if (srbds_mitigation =3D=3D SRBDS_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_SRBDS)) + srbds_mitigation =3D SRBDS_MITIGATION_FULL; + else { + srbds_mitigation =3D SRBDS_MITIGATION_OFF; + return; + } + } =20 /* * Check to see if this is one of the MDS_NO systems supporting TSX that --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2071.outbound.protection.outlook.com [40.107.243.71]) (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 474DA23AE93 for ; Mon, 10 Mar 2025 16:41:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624869; cv=fail; b=oGvTr5k/SN7kCtyxByvxCvFDn2zwHgzIFpmXDUtKQe1vk43iwJ4MH+1NNzHOOc0g9KLoHhO0Yz74hOqzFSKOrFT4KgYrMoXO8dbVoAohHSLPM6eaEXT43tpoJ97kLMIfd4zCOsjIppWmQSu+s71kRoB5ug/XhV9d8qSajFtuaWU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624869; c=relaxed/simple; bh=gmtuJUxLwQSryJNVC/8KTKW6nLCv9yZmT3/1kMAVS3Q=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=g+c9Xxys2nEwzzIKoKl487QBmZj3Rmv5zOOxHI2ANKmfEvcG7NtHCOkViPniExHtZQe36oJPepbaASQmXgW+3pQvl5Bx47tdecZZ+V67bANQBr9nErYfisRvk8Es3AFxAs/DWW+0dyHe7W8yg5/u8pxlF6pfvbmbMKAgE0eXEk8= 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=EWH+svF1; arc=fail smtp.client-ip=40.107.243.71 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="EWH+svF1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PN3WLK7wPm+XIpBT2CAomw2JERRG3nvs1r/uR/OB2utgxSaOksruNhLV94rR2lKPL1kfc3XeVicbEUWXx8uW7TPQF4FD/AuqkVU6hqfE9rvz6TmEE/N1y1XCU/a4UKacKEmeqh2A6O/uxkOkxZ3CBM9eYcKgDuLUIbEhYl7RcygLty8sELlChG6IiZcAM7lJ/KJRzXMzjNiCHu3HFSJsOW+MztgeWtIbFTZbvUlMgFJramU7p1hb8UnZxam9DoVjkgnQoHI6QnB2ri84FNsYLAecb6c3jXrOh62HBh2aPb8AZOH29Wk8w/3vbfDx7D58+f1qQRxjBYWEHH+86tXDIg== 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=CJX5vc1eZEzXCjJRi0jEdOJR1UbWxNFLZTtR9meW0dM=; b=gD5EDwpQUPjHN4FnLeZepMxZyltFBbEDWVFKNMt7N98nJqA/Pc1ikqjw7NHk5i5RGDQovID75WiaeRLDTBtejeLGn2KKIej+GZWFMed3f1DdGFP/J6iYX0Vc1neFjFmsKH/VocDycag2NvkxvBDO3ozwmMXGmuglYwK1ztBohRvwtOvktMeEQMq4ttTfdJLGPlqjGhES2kGH9GfqLVd8cLgTInP9NXqirCFRZQmNpyCEkUAo9qIODgNKtjpye/0qBAl60RQsiXEwZZN9ZkJjTdupP/6PgU74u4afpklg4pPepT7p9JbOiI+XhZSnUEmlbu2US04LsvWnwOYXXVYX9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=CJX5vc1eZEzXCjJRi0jEdOJR1UbWxNFLZTtR9meW0dM=; b=EWH+svF112XdX9dJlziG5Qi4Cu7WlEWdMma03LpLAg2zGHvNU+erGdDwjMAG3vsX1ww1pHGR8N5HLjvgMnR/liXVgB+joRwOUGwdbdpcMR5fnJvUaAVs+XFou2y+b+G4D8yw6KZfp602JegyCXpK6/O/DpiHKMaccsYYqBq28mQ= Received: from BN9PR03CA0080.namprd03.prod.outlook.com (2603:10b6:408:fc::25) by DM4PR12MB6229.namprd12.prod.outlook.com (2603:10b6:8:a8::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:04 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::d9) by BN9PR03CA0080.outlook.office365.com (2603:10b6:408:fc::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:04 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:03 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:01 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 26/36] x86/bugs: Add attack vector controls for gds Date: Mon, 10 Mar 2025 11:40:13 -0500 Message-ID: <20250310164023.779191-27-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|DM4PR12MB6229:EE_ X-MS-Office365-Filtering-Correlation-Id: b210bfe7-ec76-41a3-58c5-08dd5ff2593c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5e43K66+gL3D7ftqIOnctXWnUNfEAvGtkL20YKhKN4XtlzkxiZQdxV3gjlz8?= =?us-ascii?Q?WEcnGp4Gx23GkP84iN+xk1KfVbRC9Qu1ehIsOrmJQguQ9RbKE/IkON03PIzv?= =?us-ascii?Q?bIJmzhKZuygUHQbGFUcYwROEFeRD8Grh3t3Ls+yP79XpX4JsN/1U+at0SjWj?= =?us-ascii?Q?rDXUBfDJ+9eJiBJ6X6l1UOIdggBWmhH1Vw3mU4C++wQEtACkGpMp3/fQmcQF?= =?us-ascii?Q?bQIRDi1ZAg1BTy2+xar/zV7HQ4w/E/LfM4T4IPP/R1XNOqPOrw8+zRM2Tka0?= =?us-ascii?Q?tBBNvQ7IAzyY1fuW1zP+9I5MbQP/Whu6Yw21ATIPttsCqFHtjOY0TlfsSscP?= =?us-ascii?Q?oheWAfRvil/yoAuCYjPZePK7bbhKfvTtAJX5Uu+mpy87nPqwt2Z4INPXS1IX?= =?us-ascii?Q?rPdAG+x8WAZQNMOOBTivDZFyM5kf6sFXBn7KtQgIymd5RCNUVn9FPEX5UQUl?= =?us-ascii?Q?vePlEii1S8P5FO6IlXg2rVWPltb3+zYTEiFMuOfBjsKyh0xXNkh3ZPNR7nCs?= =?us-ascii?Q?YsaPrum9AfI1uBsGvyUp3OsXnfo+R9jOejStWZUqrKiYz0m5U1dpg6awtGU+?= =?us-ascii?Q?+FcOeoRh6AhblQkRRju9UBtaTyIc87PpIdmWGX8hkenUE9+J+INaxbVJnHfS?= =?us-ascii?Q?RxiIPFUiN/alblJrWaH832Cm4/07uNJplhEQmVYFQYtAgayugsj3DpiKSqNU?= =?us-ascii?Q?freORHCAAIwvmNhV7Of1fDJOp37zoy54BAR7LJEsOAJGx+wpv3nMaWQ6NjVS?= =?us-ascii?Q?4bvP0XhsC3BexT0Dk+IOgMC3Fub/xvm09xAC3j0ebi/1+YTk8agbf7UgJFrC?= =?us-ascii?Q?OaLuy9cUFOFNkw2E8GWgTWHe5IkgSyPhnPxqiViMQLFykvBaxK9uprnFDtbe?= =?us-ascii?Q?Mdlaavusd/MLFx/fsF8SJ+Is2E1rYYnawMfYizTb9z93BS0zNyUmE7pPdzCc?= =?us-ascii?Q?+hYNCRaTUUMbVPEJpLfW2L53Dv3Fd7LqJoieO4gWipw0IJT6n8eDDXV7ZNDR?= =?us-ascii?Q?lxQ6cqdIidDsgwrq3ZGq7yn+9uCijgdiS2HDyNdLa0xUGBYfArETcbj3A39z?= =?us-ascii?Q?3r9pp9M4Uefv41F0G+C2/mnk+J2pEoa2sGke2uh4CLfbaoMnQKCyblKw1iiG?= =?us-ascii?Q?asa4Ir1zoohRJdJsTxX57TsEeXaQZl/Sus+q/+VMM+SiKzSzkVyA4kGc7cgT?= =?us-ascii?Q?FGuSH8RJVhWlVjKQGq8OhHV0she/gxqfAvUiVI91QHClpar1jQyu7SSd0JWa?= =?us-ascii?Q?GuQBNeraAzQPG/oEPuDw7BLF2qGZuLsaoiX/Z35jIX9h8i4zGwh61hzgs+El?= =?us-ascii?Q?uaC20IUd2Z2qAQCaBUw1e621Q5ZD2B9CbXUpC3Jd3BuQQrn8qOfNoZnpsvT1?= =?us-ascii?Q?aGZfkg58gOJ7e7iY2rYQ/CLJ+YaSKc/F+cJ6jIWFWjGcSFIhuGUnOflWCEp7?= =?us-ascii?Q?MmUfNpmVOz7UzvWUCC4hp17haXuYwKUUwaO07Ej9Zaa0AAg5rL+ZIgja2qyU?= =?us-ascii?Q?LAWYGAOqkiScPGY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:03.9861 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b210bfe7-ec76-41a3-58c5-08dd5ff2593c 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6229 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if gds mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 148cac36a24b..5803c45dc15c 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -994,12 +994,15 @@ static void __init gds_select_mitigation(void) return; } =20 - if (cpu_mitigations_off()) - gds_mitigation =3D GDS_MITIGATION_OFF; /* Will verify below that mitigation _can_ be disabled */ - - if (gds_mitigation =3D=3D GDS_MITIGATION_AUTO) - gds_mitigation =3D GDS_MITIGATION_FULL; + if (gds_mitigation =3D=3D GDS_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_GDS)) + gds_mitigation =3D GDS_MITIGATION_FULL; + else { + gds_mitigation =3D GDS_MITIGATION_OFF; + return; + } + } =20 /* No microcode */ if (!(x86_arch_cap_msr & ARCH_CAP_GDS_CTRL)) { --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2046.outbound.protection.outlook.com [40.107.237.46]) (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 9C3E423C8B6 for ; Mon, 10 Mar 2025 16:41:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624871; cv=fail; b=DOpz+D2lON4c6NDIVzL/4dny2uvn/u8dDmPKl02TK1TGyNUAnms+nnAdLRu1qIOefCJSE3L5M7EbayQIQJnzRuzJ8Lp8MuFa6N6BW1msU/uP3X2kpSS0iwEtxkefHzABFMDA5plt1x/LZI4g8e8W3xCYRlvc3P9v9BpE2n0xX1w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624871; c=relaxed/simple; bh=5I8ky2SkEkbvHvGZ076qJyzF8/JwbeCVYaZdFjMHYRY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pAUj7C4yzKzd2fDnHULDHQzW+WSa82m2WYiD1O4PeyA3xJ4vQUCCTatkqgqHGcN95hHAuZmf4SrX+5744ayMEZjX9IerOW0kpjzSvfcEI1xhC+Bj4jHpblPcDc1dL/5A+002bUElxcJbhJx2F8TX5ygk+CToxphnDUFSQ6D77UQ= 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=PMFS3o9L; arc=fail smtp.client-ip=40.107.237.46 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="PMFS3o9L" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uzgYXOB2dqJyRnr+3M5Wfkatz40JdDH2sFaTmre2MhQRcVTy0Nnzs8jnnd07ey4T9mOCJ5ti3rKv5KCJSe+8T5IApnpoLEYfePjBaLmN33gV2pu4mHvJDUyHO09hFe2zgNF8QfVSJLNEdG3PxBtdBOP175y+jj+5pYUww/ll7hYrYr0KSGUR2Zo2QOggX2jj1xLgAGcjXz4OsbayG5VLQJoO39YZpPAkm4z5ZZ0xgehgiyk5eYjfcf6YW9/rnX6wzLdS1d2bywFQVrQfLJXfzAA5PH6/9eXm/zsjZQ+/3gsiruXhBRtHZk//tCvwoXuDTRxqjUupEaxvgkYekTsTaw== 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=YcU1q6I2XNPpnVHCO0MRiT36GXQ1z6lpxJukiazU/NE=; b=PF7DFr0wScRHbYbJDjUmpIsUytDFfJz5wdsxhI95X+vHNuT3vu2RV2n7VMNp2CfqDIvTZdsIvVx0St9z0P8TfH4y9GtpUDu6BX1CovnQLmIdrmJ0fuXpAQzen5ZvLtu+ikGHhaok5488pEr4DOWaPXIdMCCxLoMFA11Am4Rxhx/NebDrkHRuB/kPR/YBaPmUUfXHzAB34BYpgJ96FBsjCQSF7x9jKUZHLCBA9X8CO79DaVJIUqtGnDtDQPRg11nuKRKuEHm/5I7mxHGnHEcXWLBljvlKtybGb+nc5NpPyFxMfEaIwKKqk8MJiJ6oWsWNlTDSzNxCFFHKpuAzUE5dQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=YcU1q6I2XNPpnVHCO0MRiT36GXQ1z6lpxJukiazU/NE=; b=PMFS3o9LwDeIoQkU0lZv0OMJj56RyZ+dNd2Y3W4yVVzF+bqBBT58CqA6dvCfJFTWDnyUuW0VwgzcsS1dANHp5Y2FnCrX43sOfcyXicnvD0LpqLsx0pJTtLzbG+jye0cTvffNN0vTFh1wUFiiKLb4R8WSz48d5zP53Yqz4pJSzbU= Received: from BN9PR03CA0075.namprd03.prod.outlook.com (2603:10b6:408:fc::20) by MN0PR12MB5713.namprd12.prod.outlook.com (2603:10b6:208:370::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.24; Mon, 10 Mar 2025 16:41:04 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::a3) by BN9PR03CA0075.outlook.office365.com (2603:10b6:408:fc::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:04 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:04 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:02 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 27/36] x86/bugs: Add attack vector controls for spectre_v1 Date: Mon, 10 Mar 2025 11:40:14 -0500 Message-ID: <20250310164023.779191-28-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MN0PR12MB5713:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fcdad1f-c20a-48d3-b6dd-08dd5ff2599b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OqOWUkXEw9LmuS89x4ZO1T3k1SWMOiDWJiTygKBh+1Rfk3/uPi/JYJAVbJ3+?= =?us-ascii?Q?JLbNbmjV1fdccIEeSmGtqMC8q0j+bHGJLN6j4UavWpr29FHrPk4kc8EqZb1/?= =?us-ascii?Q?iygRThmghn++C6Eu1jSx6bkKxBZPbH+prLoMI/pX2W+Q6Svkl3p2IhAGyjfo?= =?us-ascii?Q?X75crM4FWLdv5BWsEU4+fOTHJgiYfkS1pVPY3fxuOgXK06YrhL5tO2GvY6Sl?= =?us-ascii?Q?lrrqw4e3ocvgnZsEkknSTQpxKWkDRYK6o/3Zd4YSKsTNLacWseGqoKa6uuXI?= =?us-ascii?Q?gbV07VYqDiuWeQlRWK7sFnjSwmFgbv2M/AHTyAYuJ3WduxM8ZcpJ/Bxs/dZz?= =?us-ascii?Q?PH/4M33dKX4Sc381pfLTKO1Pi2nE0u+btkNPkO82qk7gPbCBX5Hd7CFwxd3I?= =?us-ascii?Q?9ZwaUpKgz0glHuFMI7szStqSORSYeWUb4Fkbj57U4ACyf9d6HSvJR3RIzIQm?= =?us-ascii?Q?wiAL6GfLdGtMbyBeB6w8pRe3Gmmmb1n7zUZamg22gEn96S+ZVGMHeqhzZmoR?= =?us-ascii?Q?r9I0fdOmkd0ePqntscoxxJuMDAH70kr4wgLPnP6uQSTVQB5UsesrqnH+7Gg0?= =?us-ascii?Q?tQq0V9rtvVGsEGr4dnUWfZI2/XLBJmtEEf3+J70UrLQxhkx0ZtihUj5rG4dj?= =?us-ascii?Q?4iae+xlO5/DajPI82PKqx5vpr4IAbjBXsNifPa+DmfdP1CotEeW/CXv8ZpGy?= =?us-ascii?Q?rETb7rQKln482a4U4n/LwLkiVfFF/BL1pJn9gjOZMzODN2CPX90yOx7eqG83?= =?us-ascii?Q?By5dDTqEDbhuSdSkpVPBziZ2FA/wRBhw9To+LgCmZ1g1Of8okPsVh4ACPN16?= =?us-ascii?Q?xOZDe8O+KCwur9xGwWy2r4DdLDt58RPaYtok/Y0BDCg0nXM87XkQ91RWx1xd?= =?us-ascii?Q?ceNakichJ307GwBdkEmXuXKIL3XZG0r63PCh+1uOQx00WtUCimOcKM6vXkUP?= =?us-ascii?Q?Vdutm/0O/U7XEPQophGn0XO/UtYyUij7buET82zaGEaxg45/rP/FT9Q/OK6/?= =?us-ascii?Q?pabToTuQC77stKtryOU/o90G+lT2Zc8Ql0AvBNuIpxBngNKIndDDda4D8e6u?= =?us-ascii?Q?g0duMtt13IdrQ/gyj4WWKSkonqKzdXffjwQ3+sj/rF+mM2W3IaqauqfYCW70?= =?us-ascii?Q?7ImJf60Lk5+7LTkT3z5H5AAfoe50NRB7jlvswYIWw1mrMiHVyNA3xVBHF6UM?= =?us-ascii?Q?TVF+dhwNYXnzKHeB5EktcGXM5USGIDt201xpBNsnqE/ZMWxePADOY24utOuc?= =?us-ascii?Q?IM8zv9FAughszPzpfXRK3up5O7WVv4NjkDkNndqelvY85W5EpVjhm9xkNQ1i?= =?us-ascii?Q?p2xvoNMfRC7oEf2nT6xbiEPcrtPGMRIUVljZ76RTtzxMIIJWw9DrarlOYrs0?= =?us-ascii?Q?wWDxjZaI0wsyDBCPlwU5B210RKA6s5NomzdlQjDpGouVYOLdi9hbQoXqarsh?= =?us-ascii?Q?p31OR5g3jWwt+Az+X9fNR86ntov9rI1sILs8lv/jDdQV4JJXfiSNyU/8GUGH?= =?us-ascii?Q?w9WgU7+xmhNPAPU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:04.6111 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0fcdad1f-c20a-48d3-b6dd-08dd5ff2599b 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5713 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if spectre_v1 mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 5803c45dc15c..00f679dcc28a 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1108,13 +1108,16 @@ static bool smap_works_speculatively(void) =20 static void __init spectre_v1_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1)) + spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; + + if (!should_mitigate_vuln(X86_BUG_SPECTRE_V1)) spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; } =20 static void __init spectre_v1_apply_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1)) return; =20 if (spectre_v1_mitigation =3D=3D SPECTRE_V1_MITIGATION_AUTO) { --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2076.outbound.protection.outlook.com [40.107.243.76]) (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 8E42E23F386 for ; Mon, 10 Mar 2025 16:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.76 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624876; cv=fail; b=WwwX7p9yquTPzl7UxztWwwlJ6u4EWhJtYYmo7frMBAFVngeu/CANdl59y4YTDs6kC02tIVekrivnMDx4jF0n5fEvZOK2sVUkvnFY0rGDmUlSzqj0zFzh0NWlSayRRiFzuj5J+yqVcIAFynd6UKPneYPP2f5UPD+dXq5XQGn53qw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624876; c=relaxed/simple; bh=DthrVJEsr7AKQvdbLFK90wujswEhBPh74cLgoBLr98s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H9OiBBVhFM9Rd2kvYO8qUBCZeKPC37CueS8Ow+ojlanSi2Xzz38L7jxIFxkezQpLQl0JhKjnYMsgVNC0iltH7JkrhLrd54MJGheip/gGNkotPovs4sahEWrqNg8lFGbUi7CqoRPLEy+VwYMyn/aTz2lLR+iDy8Nv7kljENit+iI= 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=uSGT7tvb; arc=fail smtp.client-ip=40.107.243.76 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="uSGT7tvb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=djSmpBZj0o1JdlFJzreOzMRAiHhLW1Lx6xmYNWCrdYUC4gL0HX6uSBfYxateCaA+HrW94PL+n4QQzB9sdZ53dSeDK8dB61OivsDeSagr2h80MUkki8xXBgXvK6I83KiYL6uOWm2mJleIAmi2mW1rdHhujIqTNvNlfgz7xe++htlFNQ1ivJkWmBjnyJYv8ePh9EmE7A7IRXYP28//nsYhALVfV8B5/F8+Bxv9S1/ievZ81o24BQdReLr6F3jl0kHvXPqgITvmgCBqsTP1UcLJFW0lj7i9SLfnoIT1wI7c5mqu/BTkkC5eOmc7Y+BSKsJu6CMkg59wrstAhG5VfzEmag== 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=MRdcbZ6XO5NCRO3dSaiVobBlS0eT1ZUVskyXMLL3odk=; b=X9hCmlNEmRT/jJr/W1hX0xMlExieKTRyZH/1wyGpl+jMmi0OQRQ5nFmwpg2NESg4LodN9m3tWdiIOoAl56TEsMcj4n2uilD01aMrhXCmqk8FuoFizRBgDQ1SlxOJuYFVSb1urpmUMIifacvSpxK0XB7ZsJ2neutPy+I70SjC9Tr6fTGkDuvRg7Lg14jEKdN9ihR86PKyCE11SebmSkX2PIiPgm2StBA1p9yuRUwYEfYvEOuvXFyIXkB8mBCap3kJd7wpFkBZ0FnG8FzdtKkYAe4QtvFBZ8L8mbg57miDkeGL3JcuRfkTlV/NNcVMPcWXtlOMkJ8JnNbs3MV3ciQGVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=MRdcbZ6XO5NCRO3dSaiVobBlS0eT1ZUVskyXMLL3odk=; b=uSGT7tvbMHubAX1nP2OKCWQDnfjSBrS3Z5z4bGQVgjziQS0Xe0II4Pp6/qXn4yeeL++7bfNb0wtGSs8DHvQqKR2fxA+55MpISvMAncAFOOZLfd4XK8hnej43muecNeZoyf3pJMoV8AwaQARFbyIkeFpLl84j6ioyL7/d3H/idQ8= Received: from BN9PR03CA0065.namprd03.prod.outlook.com (2603:10b6:408:fc::10) by DM4PR12MB5793.namprd12.prod.outlook.com (2603:10b6:8:60::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:05 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::cb) by BN9PR03CA0065.outlook.office365.com (2603:10b6:408:fc::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:05 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:05 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:03 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 28/36] x86/bugs: Add attack vector controls for retbleed Date: Mon, 10 Mar 2025 11:40:15 -0500 Message-ID: <20250310164023.779191-29-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|DM4PR12MB5793:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fc89064-d4a8-43b1-ecbd-08dd5ff25a12 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?URtb7J55rdK2UPz5aYUf6Q2oJqxu5PQ8yddeLBEZVJmr5YAQo6vFehUPzoer?= =?us-ascii?Q?VNte3n/DnTKS18XlCZcmU1HbVB7kMemSw9ATb0qE86uN6MV/0Ta5sMUWf176?= =?us-ascii?Q?iMx/F5L3W4VoHCpsStbVtpF5eCgp5xsenQlNWsfzl6/f9qwOKMXLooyPLF44?= =?us-ascii?Q?43825HeXf8AHsFuPlxqo46+4waKebl/UCQY3KE9w3aZPOgwJC6+T9Isb1R9Y?= =?us-ascii?Q?5vhNQ0RP0w+2w9eX0LLMWQ4BpAxlKGbtLmWXX+bAyUC+KGXgB+4+GtNhR95l?= =?us-ascii?Q?6uMrjJshKzDmTx/bAYqMiVhSmoCHCqtA3rUBJ5c+cOA5tk8lihd19n8H+lF+?= =?us-ascii?Q?D4B8szCPPHoeaB9Uf3Iy9rSsfJG5HHapWciLoBA3UGXX4QbmkxJ9OvKpIsu3?= =?us-ascii?Q?0mpcV+pPYtXGXWiFGJNRPg7yxlZLpxFvbFSQc1Z2eRVqeHPyudU0IGvWUvOx?= =?us-ascii?Q?5Sc7fgrhzXb/DBOmtwytGAW+kumRjRzwl7PKexHb2mbqhjigI9mPsZnui7Id?= =?us-ascii?Q?MGlEXPkuW79EGdvMC+xGHdYUHZojFJKgiTE2W1GkGyCsI7TRJud8It/T+6Xc?= =?us-ascii?Q?mmfazjOof5foHCFIcDgy7SQcXGj4QWMhayWxylGSgVL3aqXglbcX123SeOCe?= =?us-ascii?Q?LTwxNbXWnTAuOJG2qG8lM/wzWdeXfPFXtzcxZtvZZJjk6t+SlNI4/pFa755v?= =?us-ascii?Q?vFTzEJmRSwlnAHtpgs2FcYXU+0V7UavAVikx7RgK6Ef+m/nL+sZur14kj6Dw?= =?us-ascii?Q?Aqokp7molFU0K8tUl+PGykQwnfpn8Bzacr87GDjdq84U3N9ZMfNLWhPoFCs7?= =?us-ascii?Q?ZsIWs3KYKb7GJYHlRexkBZMdYH5lEGONhjf7b0jMsnfUO7tZh9m9/ZN3ZQid?= =?us-ascii?Q?pi1VcygLYepb+V9uS0WoIEsXbpxenFf/TD34Hgy6UyKGoqwgEPHXdn3d/bqw?= =?us-ascii?Q?BR78XLhkUMkVyvU3GsDJu5w8rez4cje73oIqBakkeTAfYyUz4S6UOI8F7OOh?= =?us-ascii?Q?PlkrYkTTaRQWQNQq/2upCqD0oNSUVkUxOPbWJMapt8cEZ4voNVL555dz25be?= =?us-ascii?Q?LUvuSdEmmt3qtgO2JuI9z7lZqrBj4FwKjcD/0oNKEbQ2eRHsxp8Ft3uSXR00?= =?us-ascii?Q?B8KxqyeaDK3JUcTv2LVRKmkgBnu55HSIgHTOUsdXich0HZNjU4eCY6b7XZZQ?= =?us-ascii?Q?tWKX5mfz4PkcIVYQ9EzS04r84qWIhaWbyU8fJWNUkuOUsP4rdWMsDPFDsOCP?= =?us-ascii?Q?7M3z2EROQj5v1TU7s1S1FHTau+/yoqy93c5NUNgDj0Ie9IUlK7LZBfZXde27?= =?us-ascii?Q?8h5JO6DFBssOmEqngj140JQZQjdYoHxeERKG7xT3Z0U5dSAyYvUdikDC2W0z?= =?us-ascii?Q?mmh1gGC39lx2NApAd/ma/f26InTBTPq2+4UNDUETcOIcf86aYq8ZYUcfmf/Z?= =?us-ascii?Q?JJKxseajDejYqxW8KQykdhsyjNktqQ4qeNXnSjXwEE33bHh2toXoFnsgUb9F?= =?us-ascii?Q?QSXTb7kDjie9ooY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:05.3923 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0fc89064-d4a8-43b1-ecbd-08dd5ff25a12 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5793 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if retbleed mitigation is required. Disable SMT if cross-thread protection is desired and STIBP is not available. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 00f679dcc28a..4d72c6dd66e8 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1237,7 +1237,7 @@ early_param("retbleed", retbleed_parse_cmdline); =20 static void __init retbleed_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_RETBLEED)) { retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; return; } @@ -1272,23 +1272,27 @@ static void __init retbleed_select_mitigation(void) } =20 if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_AUTO) { - /* Intel mitigation selected in retbleed_update_mitigation() */ - if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD || - boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON) { - if (IS_ENABLED(CONFIG_MITIGATION_UNRET_ENTRY)) - retbleed_mitigation =3D RETBLEED_MITIGATION_UNRET; - else if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY) && - boot_cpu_has(X86_FEATURE_IBPB)) - retbleed_mitigation =3D RETBLEED_MITIGATION_IBPB; - else - retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; + if (should_mitigate_vuln(X86_BUG_RETBLEED)) { + /* Intel mitigation selected in retbleed_update_mitigation() */ + if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD || + boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON) { + if (IS_ENABLED(CONFIG_MITIGATION_UNRET_ENTRY)) + retbleed_mitigation =3D RETBLEED_MITIGATION_UNRET; + else if (IS_ENABLED(CONFIG_MITIGATION_IBPB_ENTRY) && + boot_cpu_has(X86_FEATURE_IBPB)) + retbleed_mitigation =3D RETBLEED_MITIGATION_IBPB; + else + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; + } + } else { + retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; } } } =20 static void __init retbleed_update_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_RETBLEED)) return; =20 if (retbleed_mitigation =3D=3D RETBLEED_MITIGATION_NONE) @@ -1386,7 +1390,7 @@ static void __init retbleed_apply_mitigation(void) } =20 if (mitigate_smt && !boot_cpu_has(X86_FEATURE_STIBP) && - (retbleed_nosmt || cpu_mitigations_auto_nosmt())) + (retbleed_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON)) cpu_smt_disable(false); } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.61]) (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 4956C23370B for ; Mon, 10 Mar 2025 16:41:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624873; cv=fail; b=of9yFuYZZla8o5Fj5j2VwuXuj5REzD+iXdpLs7sWAhsg3RvT224eZQNyy4mgKLISHuT+xEZxVRtnUhFtAa9+V4dpU7GR/EK8JSoVujv29vlA2n/Y1csvJ0Z+fnsmNlXuq+EfrV38zNkYkGq7XOzpYAQ226hqqPl9Rlatllr9qqw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624873; c=relaxed/simple; bh=TxWnPHmts8KaPFLnQ+3uYikf58KyzVIH6vWH8ifzfIw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=coRnZag2Rt4Ts4S4EBT+WVg9DXNyAIbgZo7m7WisqkATvgGM2FoZ4xu7qzSxvlqzcYLAPA06eCfgGAWzvKGUNDsG99EUf0pjHncNKaSry+eEKtxbA/p4fx7rrnn1AMrMlqwV0/GJ8A253d0xF8KHdDdceROlCwyQ41ug9r4vpiY= 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=yRSCQ5sr; arc=fail smtp.client-ip=40.107.94.61 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="yRSCQ5sr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bDDVLIWf1g0EnTuErc8O3CmxkmGq5jlyxgc09bKwicQxjMNSv9QEJfAUDYLVMKZiq6J8fLCtgkaejzLDeXEzE7qTu+BrdpoDxvNQn0bfJwIWy2efWiDKvmDI+zLtOUEC8mZ7aWkHJrbWSktUqxxXEzfDnnkhktr9VQnwU+KcrmWbvPj1bPBIxWCb6RPmeGanpAVEHj25PGg3RwfPaYO/0PkyJtjp5Iu1I5yClODsxBQLwjlO8AwVkcHaifsq7xtE43IwLGEchUp8bJLIl/WaD8mZRuQH049kSW3iqZKoNXb83ZPuY6N01/Xo2bLDUHu7OMAR/Y8fJvOJFj5DQS9jog== 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=VSLDcWQEohhQTZNZtq5q2yVa0ow//ukw3v2M2QshXOQ=; b=FfQ132J8QQvROY5nDjentx9vQTxDxtHbX/MY/GPEH6B2mnOZpX9C96L8pgydBqCK3Eoh48QP/jNLzlVj8Q4QvcV8zWNUNPDUor8CEScBFnoWvYbHxWbDLM29Fd85Q6yCzv6wUCU9Bs13MtAtYiNV759x741gQR1hKOZOspgKy8b7d7ruzOxYbLPbE0yeXy9cHjS4RVs9+bDDjBTSfV40lnXu0DyBadEcBi6JJM32K+v2gKCy/UNVXA0qUEAwSXq9/b/58wQb51sOLPYq9X5NAb/cB1iFN/ofXMmPwlUeJ70tn28lDtq/b9AmarwlpsAtZhD0dloLKYcRHUPBNPmWhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=VSLDcWQEohhQTZNZtq5q2yVa0ow//ukw3v2M2QshXOQ=; b=yRSCQ5srzsvyxnmMHf/83+0s2Txxwo/CaUOZncB1aSxsy42EqfGK4MSEIpAPUcVHQJJ1FZsz5HA3hxNs9fWpIJ67MW495C2+iEcLCJFvXUGf+nllZs896St7140HoQ5feRqDGWY7hyns+gAOkOScnhT9JTumVCSLSgVN6TaI2uM= Received: from BN9PR03CA0088.namprd03.prod.outlook.com (2603:10b6:408:fc::33) by LV8PR12MB9408.namprd12.prod.outlook.com (2603:10b6:408:208::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:07 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::50) by BN9PR03CA0088.outlook.office365.com (2603:10b6:408:fc::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:07 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:04 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 29/36] x86/bugs: Add attack vector controls for spectre_v2_user Date: Mon, 10 Mar 2025 11:40:16 -0500 Message-ID: <20250310164023.779191-30-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|LV8PR12MB9408:EE_ X-MS-Office365-Filtering-Correlation-Id: 4278ce01-ee0f-4e0e-7c3c-08dd5ff25b46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7VzcC64m0sb0mtNk5pcKXHwlYe7oRFivla77Mqc5nL0MV7kkeihlRoxwQ5A/?= =?us-ascii?Q?kc4BeFAGIROeES0BtowCp1HhSRUV1zN0oNQhyxgbhQm7VTUBWRDR9WLTlIHA?= =?us-ascii?Q?KdqkDeOdwDfrq8Vq3bMebp6fui319TI3pmht04E7AVPkZgDr+AsHgqWfeu+d?= =?us-ascii?Q?/S10mcCfc7sLX7NT2ZoGQxgymLZWYhXWw43dtDPSHqzFfqyHMjSUH0OkhXCK?= =?us-ascii?Q?V7jnvYsgw7bfqszIoX5FvM7+Mo4iXqr4rJSMv+ba0mrFy05fYY0vk0Yqz6z1?= =?us-ascii?Q?crpyWvriuWzHGnPmdqFYroIHAE3Lq//xeIKARGZntbBgk69ZUh0PQiLRLuHM?= =?us-ascii?Q?98CpBRmyl3kSR1eeGVREev1gr0JCdOjOJ6NN5KVgne1QIYnbepgdKN787Hi/?= =?us-ascii?Q?dSPhnS1kWHR4NUr8rJr0Qqf9Mo9FtNn3QDrp2PfH8XFfsbaCEkrlRVUgdxh0?= =?us-ascii?Q?j2aJKQ982zT160PKL9GpabwbUfFVv3al7RJZq8EG79OW1jY5/BqYyuTl0ZbA?= =?us-ascii?Q?BfWX8czdtCFI3s+EUrpz5qW0VVeWhHpuHX8ZHuYZCheFyad6Wdi08SabBGqj?= =?us-ascii?Q?wS6PgVpiV2ruG4Da5/cp9eca9rrnVGcZnGnZxuxlwHtpUPwTx8mwAoOSD/Xk?= =?us-ascii?Q?oc6F8mxmfYeIFkXCSxxUdA8Mhy9S3jwowDICRz5jHb4MvN8AuhVuzhJygiLO?= =?us-ascii?Q?2nKFmkSgCHocyjtNIUYs9tqRFFGr36+dHUfYyhXOmgYs//9lQdb0xKB9xZP/?= =?us-ascii?Q?Zat6CdzDxaPJ3cgj4EvNR4ezHx3MD5R6NaGC+Ly1K2caowSCtJHD/xpVvXWP?= =?us-ascii?Q?YwLS80qup2yHu+C4JEaMjJSEf7xy5imnr5EiZ/a7PVDkJsOZcz1hlzszRZqM?= =?us-ascii?Q?XdniRWxDCQDosSrVAnm8RMA/fC445TPiPOk2YSd2bLGobPtV6KKL6MLvaiqI?= =?us-ascii?Q?tlnGk2FEKKbEyVvhsXsA/FyrY0hdyKMnhJiisobqoOXf8m8kn4FpYnoFEa0n?= =?us-ascii?Q?a5icUHETgTQgVc9S9Edm1yeqJJOLkRFkdgOW+JStVVBme5W0ZAgp0nquApqi?= =?us-ascii?Q?APfQ7raKHXDyOrRygHVShpzju4/NDPphpo76e/0r2UfzHsu4R3Jktm4Ffz3F?= =?us-ascii?Q?b9j3qMzdUYTX8b4+p4UiEbp1F8cgiREgHbNFFTjHeKzXZ1Yx/zHyvIIt5QiN?= =?us-ascii?Q?EasRuQ55yS8a8JHaoxzoLfRzsJrAxQUowzbIfGluCp9IZPA+aVXaOhLqhg8N?= =?us-ascii?Q?L8oBMf5dMv6zhN4tsCWcRYnKJNFM1Tgt7tCDrgK7UY32m3d5GhWK7EUhLlUZ?= =?us-ascii?Q?amM21xAzwrAsBfC2KtWWzeWll5ycDE1CMCGCkmUECuCY8EwB86f9eRE0wXjj?= =?us-ascii?Q?lF/KLBez+/ovaa6eSR/hoSdPLs+vjHtyJP0pan64x2Go57Sy7rCWRQbtwADN?= =?us-ascii?Q?3Fz0Vljvaeepiuc+U4SiTBBlEVk2CQFcGpi52enzKoX5+4NcsZWIdVXfYX0s?= =?us-ascii?Q?o3Vkcm2KnxcMA24=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:07.4080 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4278ce01-ee0f-4e0e-7c3c-08dd5ff25b46 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9408 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if spectre_v2_user mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4d72c6dd66e8..e06dee765fd5 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1517,7 +1517,7 @@ spectre_v2_parse_user_cmdline(void) char arg[20]; int ret, i; =20 - if (cpu_mitigations_off() || !IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2)) + if (!IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2)) return SPECTRE_V2_USER_CMD_NONE; =20 ret =3D cmdline_find_option(boot_command_line, "spectre_v2_user", @@ -1560,6 +1560,13 @@ spectre_v2_user_select_mitigation(void) spectre_v2_user_stibp =3D SPECTRE_V2_USER_STRICT; break; case SPECTRE_V2_USER_CMD_AUTO: + if (!should_mitigate_vuln(X86_BUG_SPECTRE_V2_USER)) + return; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_PRCTL; + if (smt_mitigations =3D=3D SMT_MITIGATIONS_OFF) + return; + spectre_v2_user_stibp =3D SPECTRE_V2_USER_PRCTL; + break; case SPECTRE_V2_USER_CMD_PRCTL: spectre_v2_user_ibpb =3D SPECTRE_V2_USER_PRCTL; spectre_v2_user_stibp =3D SPECTRE_V2_USER_PRCTL; --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2069.outbound.protection.outlook.com [40.107.220.69]) (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 3B50723E352 for ; Mon, 10 Mar 2025 16:41:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624875; cv=fail; b=TRZK0KYKGxG8yFK5qO+HJ5J8NuAz4H6my9cvS4Ikhqxgmo874fvIav+mB88MlS0EpVTRKouu7d0l+SOzGH1joZqXZFtaLAT8ekIaB7qukFgLg/Pfrnn2cgqigTV8lgcDwYDDLK82hVCjH5WyvWycHDdl7T73sqk3K7J/dOQ/xWI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624875; c=relaxed/simple; bh=m/J970w5pJZuuSYl3tIIwINQFGw25NwzleNKgz8D2jE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bpQe2HJKiDZ2CI6ftopUIcsapP1CG3z162sEf95JGSAGGUZufon35sQLIzmHZo/k/hK6hnCzvvdq3MOkN57cQComWOXtOXeQC3aLK2ACMeFXmV4+497FY1/RhsUatpub2p1SuhW5M1BWQxw+hpGfWVHIUzTjMbo5r8U1CxE0mwU= 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=X+byfS45; arc=fail smtp.client-ip=40.107.220.69 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="X+byfS45" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k4uGpS08S+z/O3UgHohsFcBOkr12/Ezos7xWxXpQ9BnDqgDnPSFL5Qzy5vd4eGDQeKsHrlES5kNypl3N3OjdRoWtYJPYqkwsjJr1LlqbodX4qpaicliqekrFuWjsWKsIWUL5GTeyG8hZOigQVl/eo9QrOgJbTMjYSi1Sns8T2vIrBvQC5deGVzLh1R16smT4NXeZ63sufPp4oOBHAcQpALaD+wa3GVCaGyc/nDxJLqoc2pb6Da1+F3RgmhrpoeT5Sb3gX0/NpEInu9n5jcADa9Q9/1Vxxr+1FEzwZE3JMS3VQfjtY+mkLnmpG2A530H/LnXtBuNrg35O3FZ4N6RY0w== 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=gZ7sGUUSojIDusD92XjlzfCmOKiKisjL85Uxl6nLVtQ=; b=KEbf8u3HDtmtbhVITOCBd/o3PKGOU5nUx+d8CZJ6KJoUYAeQSuMNPfTsIl9PxCjsVbxT6HcSfSiRUCDX0Hza9icFbv6pyWFqFj7KFN+ZRkEP19f5mOLcr9x7v3Z737O53YGKfxpd6YPgu/vresa7CCp/0S9e3FLGDQA4U7dayliQvr/8UaMPYDZszS0vuqpHpmcNBrfwUYL7Ju4Nfn8l6BSTiZrvva6s+oNcV0Q9jp0LvHJ7rAXBlWsy3nz9/Ph8CZCYjuOVE+qcbKwJOJAypK9R4uvTCBtEGZmrG2DWem2UO7diOgV+nveKgcKzDWCyPe4CELW5OhwPOYk+iPUaxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=gZ7sGUUSojIDusD92XjlzfCmOKiKisjL85Uxl6nLVtQ=; b=X+byfS45Hya3S5LN+WA6vKxY5RLdMQ5y8Nc2k/mgTzrapH2luSE59ungO0ZOQG5lMaeR6PGCVq9FpRQ/rY/flCYvorB50Uq5S9/F390Ku+1vmHGhjcaCaOXFTv5O95wsfFapVe2WNsYxHvAnaB5XghbeICUsE6QZbb51KqtM4DM= Received: from BN9PR03CA0061.namprd03.prod.outlook.com (2603:10b6:408:fc::6) by MW4PR12MB6952.namprd12.prod.outlook.com (2603:10b6:303:207::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:08 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::1c) by BN9PR03CA0061.outlook.office365.com (2603:10b6:408:fc::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:07 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:05 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 30/36] x86/bugs: Add attack vector controls for bhi Date: Mon, 10 Mar 2025 11:40:17 -0500 Message-ID: <20250310164023.779191-31-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|MW4PR12MB6952:EE_ X-MS-Office365-Filtering-Correlation-Id: 37ab8f07-8402-4a92-52ab-08dd5ff25b7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0dQLLA3X2nb5iR69J/q5mlhCHCBoV8pyjzj2CTZSitl0tYSzF4FH0V6llSCq?= =?us-ascii?Q?d/FrcFW6Ifks6cYwW93hruehHJohzCPi8GFTl1w5CWnD0Bnt+DLV2LfUPcBw?= =?us-ascii?Q?LIG61u0jv7sIkSH4UKf6dY7IRepM6OoD0/J9FSi8pH6oLdMDzp7k7pmx29r0?= =?us-ascii?Q?HVuoS2vLzhbBWvKYfgX5fdkiQmdbU2IBgbmdIlI6fftzIYQrJJXcwOtMWKMP?= =?us-ascii?Q?bCWcRSbxQh0hlyOvHfk71EZgwLmIn2EzHxrQDiK0PUVw6xPLfMBVYw1VfWTn?= =?us-ascii?Q?B2HJzTZvvZDYOYYvJrpmeGmL3ABCEP0dmR5+Ebc/n8sApY0x35UThlsR63mi?= =?us-ascii?Q?rtA8Y+QN0u0TpQvJ/D0kOXeHDmiaLt3iEUwuDRSd8oS8DDFqXt+UlrZKE7Qp?= =?us-ascii?Q?yNL8r/6JNnqSSWYrGYkaqoE3gHc3runUAyYESYssi9GohyQOGeI7wShN4qP6?= =?us-ascii?Q?h+uh3btjNyouWUgK7+6YwpGT/vQGJXIn+uUlKxkFJstVdZRqreH/ho/8OFzB?= =?us-ascii?Q?UXs/zf6CbdQY/nOixQOJi4E4abKcZT2JPFbU6HhwmwCESoKqzS39t9hcRLo4?= =?us-ascii?Q?DSSq7qAfogFuRg/nFazEP/adw5qncSzd5LzEravrcNe+E65X4Im/kwBHoAIu?= =?us-ascii?Q?5XD84Job08GZdg1SpPBVyalEMrzWpAne5wEZId1oP8hO1GJ0+X40CPa9Dn+h?= =?us-ascii?Q?8Ojvu+M13X316xdmjCmmEXjvVXrZJzc87n2V2aVCSO81bgYFLeI7jdLXI40Q?= =?us-ascii?Q?E+sQuJXJL01HiDrUM7zTRhb27TVeOCy/cvmKsqQNh4MHP0/pO2MM+tEn89Gr?= =?us-ascii?Q?R30Viv/BnrsRaHk9mQ8FrbcGT2aDLqenGF5NNoVNFi7End/MHJ4st8X0CIyJ?= =?us-ascii?Q?kPSCDkPiiQfrbzNMvH/rr+KWoU+MSvwREDdAaqchddjBOYXsWF4jmUHFVwIb?= =?us-ascii?Q?5If7k+pJvODQOpq86DqrUNcYuC7sPGC9zXyNewqEc/XZHs4q52UFZjI62GQn?= =?us-ascii?Q?rvK+Zr+mYK+5zhJL0k8CIQKnyjRvbO4wr0Jj26zt6ipAmyv0VFzziDvdfW5r?= =?us-ascii?Q?Y1n6jfPGgO3k7DhfYc24ERVxd/lRPpJU7h+zaxSKGs6ea680Oo1pjC1uXhou?= =?us-ascii?Q?zbEE/jjmZiisrG108Xf4TH5DeC48cRL8coiNTDRrfD9mcqs/lrh5+L2wNEtQ?= =?us-ascii?Q?hhU7LDqQCOOMLja5Cs3Wpv9RTmugWaSST87exyFLIRTG8LT/sO3d5UuM6soX?= =?us-ascii?Q?9bjnoK9T0H2pc0jQ7Tzm9XOqP+eohSzWbwTqs3qXn6f2aabpgG9QaelUhgUU?= =?us-ascii?Q?UPGne2AS/P6sHhOxlu/3udvioHThF64BrU53tz4QA8DE9M8aAdJfmy/7VrL1?= =?us-ascii?Q?nuJAy2BuxB6Gm3IxZEkINWPsBlEYGk7XOGsxdZFdJHnRVjePTVKEdCeCC2b/?= =?us-ascii?Q?fOAZEFDwi+tQzk9nfa64DMJPRI3sOmb+Z4mBoIo29eC9NBeT//fjXUJYXRZT?= =?us-ascii?Q?ND9PL0fGJCXtbs8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:07.7205 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 37ab8f07-8402-4a92-52ab-08dd5ff25b7d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6952 Content-Type: text/plain; charset="utf-8" There are two BHI mitigations, one for SYSCALL and one for VMEXIT. Split these up so they can be selected individually based on attack vector. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 40 +++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index e06dee765fd5..4912367f2334 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1889,8 +1889,9 @@ static bool __init spec_ctrl_bhi_dis(void) enum bhi_mitigations { BHI_MITIGATION_OFF, BHI_MITIGATION_AUTO, - BHI_MITIGATION_ON, - BHI_MITIGATION_VMEXIT_ONLY, + BHI_MITIGATION_FULL, + BHI_MITIGATION_VMEXIT, + BHI_MITIGATION_SYSCALL }; =20 static enum bhi_mitigations bhi_mitigation __ro_after_init =3D @@ -1904,9 +1905,9 @@ static int __init spectre_bhi_parse_cmdline(char *str) if (!strcmp(str, "off")) bhi_mitigation =3D BHI_MITIGATION_OFF; else if (!strcmp(str, "on")) - bhi_mitigation =3D BHI_MITIGATION_ON; + bhi_mitigation =3D BHI_MITIGATION_FULL; else if (!strcmp(str, "vmexit")) - bhi_mitigation =3D BHI_MITIGATION_VMEXIT_ONLY; + bhi_mitigation =3D BHI_MITIGATION_VMEXIT; else pr_err("Ignoring unknown spectre_bhi option (%s)", str); =20 @@ -1916,11 +1917,20 @@ early_param("spectre_bhi", spectre_bhi_parse_cmdlin= e); =20 static void __init bhi_select_mitigation(void) { - if (!boot_cpu_has(X86_BUG_BHI) || cpu_mitigations_off()) + if (!boot_cpu_has(X86_BUG_BHI)) bhi_mitigation =3D BHI_MITIGATION_OFF; =20 - if (bhi_mitigation =3D=3D BHI_MITIGATION_AUTO) - bhi_mitigation =3D BHI_MITIGATION_ON; + if (bhi_mitigation =3D=3D BHI_MITIGATION_AUTO) { + if (cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL)) { + if (cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST)) + bhi_mitigation =3D BHI_MITIGATION_FULL; + else + bhi_mitigation =3D BHI_MITIGATION_SYSCALL; + } else if (cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST)) + bhi_mitigation =3D BHI_MITIGATION_VMEXIT; + else + bhi_mitigation =3D BHI_MITIGATION_OFF; + } } =20 static void __init bhi_apply_mitigation(void) @@ -1943,15 +1953,19 @@ static void __init bhi_apply_mitigation(void) if (!IS_ENABLED(CONFIG_X86_64)) return; =20 - if (bhi_mitigation =3D=3D BHI_MITIGATION_VMEXIT_ONLY) { - pr_info("Spectre BHI mitigation: SW BHB clearing on VM exit only\n"); + /* Mitigate KVM if guest->host protection is desired */ + if (bhi_mitigation =3D=3D BHI_MITIGATION_FULL || + bhi_mitigation =3D=3D BHI_MITIGATION_VMEXIT) { setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT); - return; + pr_info("Spectre BHI mitigation: SW BHB clearing on VM exit\n"); } =20 - pr_info("Spectre BHI mitigation: SW BHB clearing on syscall and VM exit\n= "); - setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP); - setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT); + /* Mitigate syscalls if user->kernel protection is desired */ + if (bhi_mitigation =3D=3D BHI_MITIGATION_FULL || + bhi_mitigation =3D=3D BHI_MITIGATION_SYSCALL) { + setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP); + pr_info("Spectre BHI mitigation: SW BHB clearing on syscall\n"); + } } =20 static void __init spectre_v2_select_mitigation(void) --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2040.outbound.protection.outlook.com [40.107.220.40]) (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 6E71723F382 for ; Mon, 10 Mar 2025 16:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624876; cv=fail; b=qdSKUNK7eQX5iInfAqjt4bZV8le7Vgbv+G7jAv7YBWAjmd1Ii0O0/0NDOU05ihDdUopKlyNtCSDtqBCM3V3VFFsTxL6p6iwrxxDDtiCCHh+mJojYwd6Yy8fqMOifr00LMBG4oD40sZRRDAkK+ndo5GI8Aw2E4ADmTCoC+w/8qTU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624876; c=relaxed/simple; bh=VYm/31KGRzWEFMFMXBB59H+INP86Zaugot//cPwsUjc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z2+lysjt0szAm3RHIFlXw6q+Non7PBgp1yyokNoKqTfCcHNTplTuf7W0qLg254ZMH66NrZnpaaLhH6C+SA3iWbpYEHrLW5i1cCkkVyvJi/a3qIzk21ycEG6vks2fn34Hoc5H1lU/cr4ZEGmbPPgxEOCL24RryUV61vD1LAgGhOw= 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=iW64zXEI; arc=fail smtp.client-ip=40.107.220.40 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="iW64zXEI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WXxLv9xkDPdaTL7CSYJmV7Bz3uPAmQfqqDCuj3J94SicTMnJfSDETyEOzhijkQuqJiUzwmFBvacbZLfIBnvKYZiMPLHlq/G3wd/AmWF5gWXc08T92di1P/kiWKhfqsjcumjotVvyCOuVqnzhdAZVt/vruFlSHmZA0Mv79piQlpHRV/65x25BMpytUCSbBA8hTZ/bBpX6/u52Le0N013xQc2V0VEDo1lDVKilNKCK/74u36w9c+Njq7YFoC7GZyYMTRiNbAFiqhTIVgOarnD79ADF2JpbekBH10kjOqPfLNgmbW3YbrPd8FhriNyQYcE4VwiKVn1v3OwaU/dFygTG1Q== 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=rJ/d+xJb7Ru0OuQA6GUGp5RE/VljBz/gX8q3eM4WqTw=; b=NSkknv6fSHAbR4nk9phjxV4Knyv8uzrWwdZ+w5ZC2IkYZnYTlxCC+Y1zLsVH/4iKmsL+bUHjhhdl82WSPqGgMpBGxPaTby+5GjegqWG4kX/CKEyI+pzCmsYnUlv+htIz6Wy72/3ILCqw7ECAzVNoseBFZpv6+8feoPxl+All+pBfcwTb70/fTLTAVeR2EEiyl3EFVR8bxbXqi8jUJJWbLXK5ssKEuqY07qn+KglrKRP7F2vxcNfn626hmVT90Jo9ZoO+Zc3xnh562tAW5i6Xk7mJKxEeCturPv9qFx56//9de731ggFq9ggOwhDvlJGc2R5wEH6GKculS9PmlldOzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=rJ/d+xJb7Ru0OuQA6GUGp5RE/VljBz/gX8q3eM4WqTw=; b=iW64zXEIF8UuO/OHR7aEKooimKLU9TDhb47UG8AC5iYuJPV6qCNVc4jvNi58xPESH5e/A709u1mQKnw2D0pcO+73Hguo6HxcPJnRAklHruvxYofkx/Ompjr7vBAhxlMd1IruAPayc9MHUEpoXfAyjSXlVTsSfYwzdDXASMvRKXo= Received: from BN9PR03CA0076.namprd03.prod.outlook.com (2603:10b6:408:fc::21) by PH7PR12MB6395.namprd12.prod.outlook.com (2603:10b6:510:1fd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:08 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::c4) by BN9PR03CA0076.outlook.office365.com (2603:10b6:408:fc::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:08 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:08 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:06 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 31/36] x86/bugs: Add attack vector controls for spectre_v2 Date: Mon, 10 Mar 2025 11:40:18 -0500 Message-ID: <20250310164023.779191-32-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|PH7PR12MB6395:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f8d56a4-9264-4388-1319-08dd5ff25bdf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oKuZ7gVUZjlo47z/uAwEy+bUVhLQmW5/5cB+57DR9CMeQAlLK25Hsnpl4mAe?= =?us-ascii?Q?l40+hyGulCbQ1+LKjE1wt7JWsSdl5Br0r8CAQrrwS25a7Ftvm4hUHwjmsrye?= =?us-ascii?Q?9XaMa7/EBoGX87jTVD3ktcc/lQzZLK1VjclIDxpizYiwpxKPEDpUrscsf29A?= =?us-ascii?Q?sQ5y6whvk/81cAzqak7U8u1+IkmX6njGhr0SJ9z6obtGI91uoh0wrZYX0HEp?= =?us-ascii?Q?jAsj5TrVtZJnii0Z2sj7FjT/5e3bDYJ1mezlotX8+QGvLkNsmI9XeTYf9k61?= =?us-ascii?Q?1pp3KYYpAkMlUGMkHqKwjDOyCELoeYtUe7rD1kyLyGM3tW0Oh8fKpu96xSsT?= =?us-ascii?Q?0wen9D+pt3Yq3R8VPcMekJ4NL5/GhJh0rxYns4ps7AT7K/fRqjB8eH70nxF2?= =?us-ascii?Q?ZBVE0jepleq5RVWuy7nnu5AvuoVnwRHqwVijEHC7hQB5NVrg+gdzVOXlOE5G?= =?us-ascii?Q?kHRc72FOxTllUKdmfk5uBFS5iIsNNTpYjga5FE4hfGCIvZn+tCZvQkYQH9PH?= =?us-ascii?Q?0IicSbyWjv6xI3rgDvoRufkDJeEcOTLRskiM9ODJn+eyE7PtpnfHL/Pio+vj?= =?us-ascii?Q?zWfLyb1uI7AWlIQ2/xWIwjVrSbWjBx4jvyG9G5f5N026UOTWN1W4H/47T7vu?= =?us-ascii?Q?8YBrejiVbe5fWM0XeJMGG0bHw/u7Gq1+skyVXy/p1a8+kajSWdqeXVLV3XoZ?= =?us-ascii?Q?uDnLHBAmWmCCjufXJGb9OBDt+KwV6ZrK9wD+HqmaWXAWv7JEE3ucnScwuW9V?= =?us-ascii?Q?Ra0au97xIOXaLWqNKoORQg8StPstOzwJS6SKWAtN24TFE5d+TSoTmcIUvrsv?= =?us-ascii?Q?k7yf9IY0XWt4v4jdEOBzL1mxefI+8jKOlKuAcNg7M5wB9qbRObuxwBohMjBt?= =?us-ascii?Q?UE2nzRXjkmVRZpWPxh4CGMRvEIfO7XBdfi34P6UTMi+HYzj4yXWB8kAQw5DY?= =?us-ascii?Q?KASjfTSK/XFZ6JPOLnSsxeO5NrBU2SsEtysO7AkhLS+rwf6tf8fjHOMqj/93?= =?us-ascii?Q?W6vW7KbWkoGXdqjtHz0Vy10tTj8WtFxmWf8rI98jjXgXbkhQ+kWW5SN8LZDw?= =?us-ascii?Q?bm/Tg7hwreIuHcwAB5Ub51TTRyLDm+oLgAPnEKdh8gt/6uya6afDuYYSk/lH?= =?us-ascii?Q?VlLighwofpHScZWO59gE+H+9ZOekbemHnX73WZt3h2sJQ1pKQq9CgDG0etQV?= =?us-ascii?Q?pUupzm0/NwAJMtTI1F29RKE3ZNXRMXFPCX70XnC1NnvKNhbMu//I7b2diVza?= =?us-ascii?Q?L/TVxL8gdzA84CvDyMpuo2zXNz0qu2F+/kuJnqPaZcgiW6Utc3idAAn/1pRH?= =?us-ascii?Q?titbOgC3nSmXEbrdBXvdmp6FzWEvIF78coXUXmie3QSdyDQI0LWVzqZFhLi6?= =?us-ascii?Q?71Bn3BVTVE+C4+Fyte5rGLgcb49j2rocf9gEpSpHbeqprUCl/3WsEZNyf/kn?= =?us-ascii?Q?bP8jdpdUry23bKgBL+IG/siJ+ybIArSH0ISEj03W7XpDm0hHPT+CgJluIbFF?= =?us-ascii?Q?0THzj9536eJ/mFA=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:08.4080 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5f8d56a4-9264-4388-1319-08dd5ff25bdf 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6395 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if spectre_v2 mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4912367f2334..e35f7059f6fc 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1715,8 +1715,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_= v2_parse_cmdline(void) int ret, i; =20 cmd =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ? SPECTRE_V2_CMD_AUTO := SPECTRE_V2_CMD_NONE; - if (cmdline_find_option_bool(boot_command_line, "nospectre_v2") || - cpu_mitigations_off()) + if (cmdline_find_option_bool(boot_command_line, "nospectre_v2")) return SPECTRE_V2_CMD_NONE; =20 ret =3D cmdline_find_option(boot_command_line, "spectre_v2", arg, sizeof(= arg)); @@ -1985,8 +1984,11 @@ static void __init spectre_v2_select_mitigation(void) case SPECTRE_V2_CMD_NONE: return; =20 - case SPECTRE_V2_CMD_FORCE: case SPECTRE_V2_CMD_AUTO: + if (!should_mitigate_vuln(X86_BUG_SPECTRE_V2)) + break; + fallthrough; + case SPECTRE_V2_CMD_FORCE: if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) { mode =3D SPECTRE_V2_EIBRS; break; @@ -2041,7 +2043,7 @@ static void __init spectre_v2_update_mitigation(void) } } =20 - if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2) && !cpu_mitigations_off()) + if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2)) pr_info("%s\n", spectre_v2_strings[spectre_v2_enabled]); } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2052.outbound.protection.outlook.com [40.107.212.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 C6B4923F39E for ; Mon, 10 Mar 2025 16:41:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624878; cv=fail; b=jqQd0QdwpYDsBe0I7QcS6gHwTNaRkU1SBuXvX3GWT0XLJUCO04JRKcYCHA9ql9k9+oqRU8LLzh2ykmkG4Ux3ZO7L9WpLArV2wiCX95fF5u3Lf+QgnUVBCznge5DY4mvqfTq7zW8W4Dxlt/Eh6W3x1ic9F2nCDDFOjIQLdC8pPGE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624878; c=relaxed/simple; bh=1uyF3pxoJvpXwQnoVW5igKZWXr2+/z/em1EQ0Wzax5M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UfSjE3U/hUtrDZMonwx+/KwOEpJ6c+STNzQ5mfP3NWBTu4qBx80wHogHyytd+0H24ABGFeFQDAG1y0W9EhxDgAWbYcucMxQs/oNhZEgaBc0GmeR64qqO8x0jhplOay34DucoSUOPhxyoQoe0kTLtBCme7s7VCyrDZ9EGgGbjPRs= 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=3r1HOkhZ; arc=fail smtp.client-ip=40.107.212.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="3r1HOkhZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I2VUBCcMTii3VBHMStd0GGZuzcPnc/yMbPzt/hycOfBUzWp77HRYHse3tgaKsNMrwo2P3Ne7aFs039NS8ES5LZ+yB3tKmiu8oDPmp5joG5ihufkNSyZHiOUfjO1CEBG/MfIxbpwSFMDUoxoQaxVknwNcVKI/ckuv6B8/EmkR/LN3+L5kkskJAw6Kz88keMjm0m7ssN3u9xDR41kcy29YPbcbx3H6eoVP7RlwlpWZEZZEp61o74nj5w8G+veQ+BhC2fIgp4rMKfkh43Ea/lMli12uHTdZUY3k9kss6cy4KEjUA2NK2+Nbv6qchrgegwOdQy7Aj5nufnvXDrSmMqLkxA== 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=uDpDb0TUY3HHLeSA95XrW4AnveGLRWRTDJ/3yCE3quQ=; b=kl5TFuVRNUm1jkBiWO8GnObPf3FjD5grATeUm7HW8rQJ+ixZtIRY2ZHE6wUqmN56gzmPo407sxZF7nGH2QsgUO4tlIDb+XoaWV7b3i+wEgokFL85n7eZnVxyc1O7zIqMfokBBr+IJ4QrwsbyEMj49kISzm5Jl63d5lJZxK5cniNyQ3o8PG09FLvsV1HS6TeibuvjR87JEgGMjvBXdJmHq3DxRSpLmFg2F+WIbQzYXI0rCWYL9IEhBSpevihMhyDmBH60jEgR4SHOjlPaiSzVzmkQJlg2Fp2cmOm6sP/pVOIKL3ctXwoDRivMsqn2RJmiBnSfAzw0/VEtiWUagyRsxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=uDpDb0TUY3HHLeSA95XrW4AnveGLRWRTDJ/3yCE3quQ=; b=3r1HOkhZCm+XtoVrIve5OrBQdWyg8LaztlNC7LZStFHqT69ja+TQ/FDYzMt4O05rN6keq8nc1TZPoDSZu9tHP89X9TRoUX5cvnKNDnCQfQ4IDrrkYa7h+k82f6UrYVP1a1WWSogbDVOKuPvrZ/mGK3mNjNhX3zUo7xuhMX87yZU= Received: from BN9PR03CA0085.namprd03.prod.outlook.com (2603:10b6:408:fc::30) by PH7PR12MB7209.namprd12.prod.outlook.com (2603:10b6:510:204::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:09 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::3b) by BN9PR03CA0085.outlook.office365.com (2603:10b6:408:fc::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:08 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:08 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:07 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 32/36] x86/bugs: Add attack vector controls for l1tf Date: Mon, 10 Mar 2025 11:40:19 -0500 Message-ID: <20250310164023.779191-33-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|PH7PR12MB7209:EE_ X-MS-Office365-Filtering-Correlation-Id: b8ac744b-26d9-478d-377d-08dd5ff25c24 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rJ7NPGW6uTsWYes48CaLeRcLZx6tqfhgoeyCo+rVwD5KrSTuiazRrwHcf88j?= =?us-ascii?Q?taqUCMAJSui0AxJWIQYaMLu/LtIVfQGerKjPM2T5/B8kS5M54dTx2sSFwc3d?= =?us-ascii?Q?Hw4rQ6ZKVoc0zPtzKIXXZRIjJ0pMQdeOM7/0rSyvxj8o1m7Uael42RAAu8KE?= =?us-ascii?Q?VCGmmIQBzbbSibMfAvPAL5fs4S1dkqEt7EtBIOvmLRU1IkfSFi9vjafger49?= =?us-ascii?Q?YKfW6edRGfeQA5lzdu2CrmDRxX5qIDoz5qA+pDYA492lqNKhvbT5u6TgfYmd?= =?us-ascii?Q?+73r5Vz8x3rLmsLPcrr3nG2TqdDE40ObLHXywAnj4D2AMMzpYc6xIgtcGvTN?= =?us-ascii?Q?/QqL3+cCYWbYC1zfb1L5STlDlc9o8lwp9IzpUHHoErO9LgyK/mK13Qet5u7Q?= =?us-ascii?Q?lGY0jDwIp82WhoLB8JQkSVE2Rt81mJhdroOB1XImdI8u2orCwh9CU6MjlsS9?= =?us-ascii?Q?QFYkDcmzdq2/7G0E1wbX2hbawCBf0DrGX5fU01HkdQ8dmrFOPXMeskjMC5z/?= =?us-ascii?Q?AmTjTpEqZpIu2DfcDGYkeg7gAKk19u/Q9YKa/EgRiCvFCEfNZxVuFXM38vuS?= =?us-ascii?Q?x8ziRO3xd+O2XOoBj7Uw2hmZ6rOKyZ19aMtasktgiptjjr2iYwEnV5eIcliz?= =?us-ascii?Q?GefEcLqS/d5eY44eXdg1idWSpvbFX/xQHlpRl6SXQzdgZh61ljmjDqBtnJQF?= =?us-ascii?Q?1yo5p9vmZYafalpfpdAQObvAmwsiuplU/aV3rSlrWS4rgWSqMl/SUMeKs2z9?= =?us-ascii?Q?2PWMX9PT7CbnGLnszV4NnZCAAD500HEHs+GN97bWX99G12XfRzPeHkZux5r/?= =?us-ascii?Q?nCGm8+gpa8SmfZNdw42LUd3AzV9E57/g2n6YGzqWyenzVPCfdSR0OSGgYjTt?= =?us-ascii?Q?WTPnnHwPJAB5gLDzxy6TWdKqP3ejSsVgFjrdBpYsFiPrGrJUigcnB/sGHd65?= =?us-ascii?Q?sfPO4iJ4rObLKUqGpUS4IMfWfpak2RDKizxpfgA2j5gKO/9lccDxTU4MADuX?= =?us-ascii?Q?MznsLWR+Ab7nWko+Ycf5FzgCxw0r+BcxZy60Bn7DkVuC9tW6qRjDK/MuMgnd?= =?us-ascii?Q?3jTd2vlUb7T8sq8a/7FPsg1t1RakGjsl1VItDWycAxAe7E6kDcYFzUXGzdv8?= =?us-ascii?Q?ohifLB4ifScEDsju6P0puP1YQmt4dCvW4MBvQdeMTNszerjxAHR/3E5KDemH?= =?us-ascii?Q?LNmbJ7JJm3BhkmP/klRguRRDccPHnxBXjYy7KYpbXQ45aTIiw1EjripC0kOe?= =?us-ascii?Q?jqKzDumHucieolJyeeAomNS5vXWKZP/Sn25bZG5tj/CXq7hEvd7qU/umoGmk?= =?us-ascii?Q?9nC99U/IqfC3N3WdSb8HDL9GSeiDcvOkJMJN02LC72NXAYf3OXp9l9T27S4+?= =?us-ascii?Q?ePFu754/6EmFt2fIXF7vsbm2dhtdJtETybh+X47aT6Q+WE6RmOMI1XGUuF8j?= =?us-ascii?Q?wjkpDknp9axs9xWmvP+34RcmqnvixYzP/3vZZttgZ7AYkj7S6XjSjqD0sjcL?= =?us-ascii?Q?3uCZwTMR0a43Fkw=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:08.8611 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8ac744b-26d9-478d-377d-08dd5ff25c24 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7209 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if l1tf mitigation is required. Disable SMT if cross-thread attack vector option is selected. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index e35f7059f6fc..e38529f3022b 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2717,16 +2717,20 @@ static void override_cache_bits(struct cpuinfo_x86 = *c) =20 static void __init l1tf_select_mitigation(void) { - if (!boot_cpu_has_bug(X86_BUG_L1TF) || cpu_mitigations_off()) { + if (!boot_cpu_has_bug(X86_BUG_L1TF)) { l1tf_mitigation =3D L1TF_MITIGATION_OFF; return; } =20 if (l1tf_mitigation =3D=3D L1TF_MITIGATION_AUTO) { - if (cpu_mitigations_auto_nosmt()) - l1tf_mitigation =3D L1TF_MITIGATION_FLUSH_NOSMT; - else - l1tf_mitigation =3D L1TF_MITIGATION_FLUSH; + if (!should_mitigate_vuln(X86_BUG_L1TF)) + l1tf_mitigation =3D L1TF_MITIGATION_OFF; + else { + if (smt_mitigations =3D=3D SMT_MITIGATIONS_ON) + l1tf_mitigation =3D L1TF_MITIGATION_FLUSH_NOSMT; + else + l1tf_mitigation =3D L1TF_MITIGATION_FLUSH; + } } } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2082.outbound.protection.outlook.com [40.107.243.82]) (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 B49A923F387 for ; Mon, 10 Mar 2025 16:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.82 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624878; cv=fail; b=C2WgJ+zZ9IjYXlTLoEHDlWQilneT8JJw5LPonl3/ukWY70pYDfMAU4i7vJFvH0kE4H+5oiQdSoq/NmOzScYA/KWYvDDc1ZpLbNxDC1oUm7B1bY0I6IErQO78jt0XGtTOCmO7W3qgusWySrknshzkNi+AUlf7F2UfE1flXf84Baw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624878; c=relaxed/simple; bh=/T/sA+MY98hjm3OGlVdiO1pYozwb4VswMVGWNEKHQy4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RsMhTWBNYJhOt95SXvgVQTtfv9P70lon+Er3uLZYGkALXCwuqRtM5+Q3g0DLKkDDIGGnsI2RqAB8q3tLmdMgS/9adO2CMvUgFkYkn4o5uJPJIe1Sdr/OAM1XgBDaG7KwC7NeECVdhsK61uBJZU2gP0RHyjr4IN+gooX5CYo5cmE= 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=fv9kbyao; arc=fail smtp.client-ip=40.107.243.82 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="fv9kbyao" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BtUfnq7yzbVOH1BxxogQUvpa4+bP/flhjqiaZvwC75kKHUthP5ldOYPgmsxevBzscjlOtGG9sL7C2NJv/WUhfgzp7KGm8wn0J5yv0+B6vWtl+Jftd46cyOIiGv16zj81OyPc5Zz83UHCduKcIabE+RAjH8100N6+HnJIg8RzF2JFSa4wDASAnMh7IeWpJHLTLd61lkVq3RnAYIgQZXFKpyAtqrP5JO5SWxRDOkDA8JsaWaFqx97ixqoZ9zI3KPbG+78bTuv2pumzJ2v5+C7XHiMVtgPe8nKempO87Sss/k/CxGFRooNzhkUBu1Fj6nB2omHC6RqMInJelYrXwprSvA== 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=zzY7lei3myX9iNqa4UvZSSvztf2qd4T5w/8a/kP7Hvo=; b=DlI6mE9zcQwLqdwFb8tH/7eBfD97nFXF4lywL9Z1v0xhoterf9sOHKLTvlyzct4It4GyNs9UfiqE+QRv7Eh+9RKCSZJKUwQ99HxX2Bu6mSVDx125wJbXIFMSSYvhPeqGp+R2aWZjw+Vi7dplCUj+IaOi9kIYWckPTorBb7naCLvjKAJDqORCpCOjwYQtYtaGUjASy/9z1MvY9wYao8+VGygfHBqIOhz8BVoxxBOwnFqQMaRRoUlgfJkzHnix8xaUwNHUSabDYbTXqgfE28MTyRVCu9mP49S8LLbe/s3cZi/GrFfRfvfCyF/rV3EnlkBIyDB/enFmO9g0YR9KKcXIoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=zzY7lei3myX9iNqa4UvZSSvztf2qd4T5w/8a/kP7Hvo=; b=fv9kbyaoDBNt5DPQwSriSZ4LVc8crsksPk6rE5P8hQop9Euk+uGkFXkyrbMnmsYvZdMzC5vvvIumm1hmCAncSVqJMxyXP1xT4SkbCUpPZ3FWg+ha9cGFbw2o8u4iTMGkyUou/SWnvldiqiejhlf/c9JucWvnK3AcR/hjLn12bjI= Received: from BN9PR03CA0087.namprd03.prod.outlook.com (2603:10b6:408:fc::32) by DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:10 +0000 Received: from BL6PEPF00022574.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::f8) by BN9PR03CA0087.outlook.office365.com (2603:10b6:408:fc::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:10 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:10 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:08 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 33/36] x86/bugs: Add attack vector controls for srso Date: Mon, 10 Mar 2025 11:40:20 -0500 Message-ID: <20250310164023.779191-34-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|DS7PR12MB5789:EE_ X-MS-Office365-Filtering-Correlation-Id: c96d2b93-3734-40dc-1a98-08dd5ff25cea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dFZOgG/yE2aXFVAVTg4s4XrSsybYLfSWcaauJ704dym3M+Ux3ygPCj13IQkX?= =?us-ascii?Q?0p0eNrLRKggfa5qe0FmKWiPXwvA5yjdVA/pjh3j34txryrNbGwPcVzbQF6ON?= =?us-ascii?Q?tFwVV5QVXZTW7aQvCHeY90z1/2gnzP4GnUahX5pu95jjCi0JZoSjrfVDOmvM?= =?us-ascii?Q?9wGQ0hIBdYSh5K9M0VDZvgLSPNY9jFW/VCIb6hnmHkD43TC+kyChzICI1lPr?= =?us-ascii?Q?lARvDROQbhTGb+TuramMbUBCxgJmItfRtSB2fY0mAeap5p3LCKz5iviQesCp?= =?us-ascii?Q?AP4Ui153EGkRk3DU7i8ScQP7ar52//fErET7kF62LqcUEVH1DnExeQkjt2er?= =?us-ascii?Q?hpGQN/z8dFYk4w9xVfbQKs6hf+G0Nk48XN/VjoL1Z4qfs2cvYysUl1xPW6mm?= =?us-ascii?Q?rxXVgaMXEu33UQCAg7zVeTa0oSGpZxDnE7oGXiuHa7l3pWlcsaCxebdP1RLK?= =?us-ascii?Q?xsl3Afr6QGZi9LDFYoWOX/popvbvNojdBll2n8ZdXDwvjRzetmxlvlBREDcB?= =?us-ascii?Q?aIfleouTyBjOaiiWgxsFZZywTSQnNPQP+ynNw6O/5cYBGYWHubf79sHabKga?= =?us-ascii?Q?P93sGqf3FHZyYwnK1KmZ+ihcLaACfmU/okQcHQVzbhzM1PtWfpOGCopKxHij?= =?us-ascii?Q?0PGo74F6MTtIFmk3FThpQo7NHI2J5JaR2Io7m+n41na2YjQ6yssFoaGUu51Y?= =?us-ascii?Q?gfhgvR5PLE+72A4dNwG9tvm/qrW02qq4TmUaFwej9i9K+q/G/Kmcud94mkuq?= =?us-ascii?Q?K5JdCp9ouZVh5JR3JGul91Y0YhtTJN2SFpKMonPasHNf8XlMRMOOLv3IIFDX?= =?us-ascii?Q?pvj4BgnBGXvsxP7NvrSFe4N8uHfzcInO91/iNGoLboHZY9cp9TaJfiFjpy8h?= =?us-ascii?Q?81WEDE/cpSuRdo+Pw4QyqExUNNsqnlpAHn1iz26/+4sinreuLZJ6s6weoVBu?= =?us-ascii?Q?pkC75DPIVKKM/XrBoVPFgJQVGg1wsfGoDTv0gu47X1pknIK52nY8Er7sxbup?= =?us-ascii?Q?Uj4/KzI+YznqtespCkA5ZRaqoIpV+iAAPbDh8QD+2Tjv5KcFjZBRPI9tL+wN?= =?us-ascii?Q?6h2pwcR5NKXNWNRu6zlB4zc4wlk8huuQo9nxah0mHzL53CCiuHCiPbL2W+DU?= =?us-ascii?Q?oI4p9nBJKbXcobloMKh3lRGLTvXzVenA07zBb06MH3sUYhXiSv7h49neRzFi?= =?us-ascii?Q?qTW+uq2CQl7pERD4GcK+pDMQgy2/M/qETsKoJ6XDQrpL91FHY2DTuBKveQgs?= =?us-ascii?Q?CIjTGn8G3hM3hEAJvw7a1RTaLcAtX6INiOmgL8Yi6fwo1Sp+96zMMI7HpHRY?= =?us-ascii?Q?IAl8xQTNiARM/a2bEGxoHBQSzaHPL7FavyIHnvsWclAprSS0SvxfvGtXilOK?= =?us-ascii?Q?lPEsMIP7qf+CZJPlxKPaYzQhaEthVkBrXzaXOQLYn7OGho4E7BzjABB7Ih1f?= =?us-ascii?Q?gDKVOx8ub0j78Vltml/ebytuQLJGLRyXxeqKd3OPPYek2HZ3v/vMit9I1p6j?= =?us-ascii?Q?Sde0DEXcJJFJVP8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:10.1580 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c96d2b93-3734-40dc-1a98-08dd5ff25cea 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022574.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5789 Content-Type: text/plain; charset="utf-8" Use attack vector controls to determine if srso mitigation is required. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index e38529f3022b..4e1fc1468870 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2858,14 +2858,19 @@ static void __init srso_select_mitigation(void) { bool has_microcode =3D boot_cpu_has(X86_FEATURE_IBPB_BRTYPE); =20 - if (!boot_cpu_has_bug(X86_BUG_SRSO) || cpu_mitigations_off()) + if (!boot_cpu_has_bug(X86_BUG_SRSO)) { srso_mitigation =3D SRSO_MITIGATION_NONE; - - if (srso_mitigation =3D=3D SRSO_MITIGATION_NONE) return; + } =20 - if (srso_mitigation =3D=3D SRSO_MITIGATION_AUTO) - srso_mitigation =3D SRSO_MITIGATION_SAFE_RET; + if (srso_mitigation =3D=3D SRSO_MITIGATION_AUTO) { + if (should_mitigate_vuln(X86_BUG_SRSO)) + srso_mitigation =3D SRSO_MITIGATION_SAFE_RET; + else { + srso_mitigation =3D SRSO_MITIGATION_NONE; + return; + } + } =20 if (has_microcode) { /* @@ -2921,7 +2926,7 @@ static void __init srso_update_mitigation(void) boot_cpu_has(X86_FEATURE_IBPB_BRTYPE)) srso_mitigation =3D SRSO_MITIGATION_IBPB; =20 - if (boot_cpu_has_bug(X86_BUG_SRSO) && !cpu_mitigations_off()) + if (boot_cpu_has_bug(X86_BUG_SRSO)) pr_info("%s\n", srso_strings[srso_mitigation]); } =20 --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2048.outbound.protection.outlook.com [40.107.244.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 13ECD23E259 for ; Mon, 10 Mar 2025 16:41:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624877; cv=fail; b=f63yzF7ovY2+o6ShnTzM9FQ0E6kUolNl/lUmG/x6aIxJ+hakE8AYc/7uXg3S/cPNvTK3n105IbHiA7Kh+8liYptNs28ccjfvITQkOOQsVKB1uiMU63cES6raNn2YxYaAsRJE/jFAeBxKWu1LaOKWT1BZfxwXQgkfJZQ7skb+SLg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624877; c=relaxed/simple; bh=CjCkcCvk2BwwPtK07YTPAlIDLfhmoqogT0K7blxABg0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=C+sz4WPkHiUU1730CtS3YuLK/I+fxfEmpfZ8W9tU8gPmU5884T22RTDpImVvGHRmjxT6tQcVpCAM1SUPAJlbWxoFoLjY06x2B7EISDbubdhJsm1MPmuNIraoSVOEogfhVbGmAG4f8gGzFCBC7Sf2+iqPyCUql4eiNa2fIJiDbjM= 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=xPk5CfLd; arc=fail smtp.client-ip=40.107.244.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="xPk5CfLd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZaytaT+vEuGQGWBdTJWcoKcCS7t1BjTs3BGLZHDiKYxJhP7GZ3PElC1oNkuq9y3ZWEdvGVNaKTAxd81KAxN6bDGqU5VgGrgXerB1d+N/WnqWtRk5/oCcx7BGT+41oSjVN4JvK37sHQwLmFQae2aHoA+VP9yScsdTtJjeHW2CA0hQBOzsnVTxMWmV1n6yds/RXdzOsufsTdOovkrqO2+LbkHnBPHtXeLuUt3vlm1xnBVFCtQKtWgAQAvPo1QMwhm3DJ7IYVqxNZgw8PRnyMXWdZlDYnjYDemmDvMFF4uPqeU7Jonptl3aTwZCRb/kROM+hdTTDqHZkQqPK+KOxf5qsg== 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=dnjhMpRUFdgxkr9yc534jIt1GKvXLVnxaasVi5ROSys=; b=crcg1xCvGdxRU8spWvf0F43OAflJ8OsrLIy0nxfgUJjyooedXRl0whaZKTJ6spSVtQPyrhBnDtf/TWg0yA/toN3ZjhlgtXFFAqWMfVqVwKgWK3cYBCkwcDuXqg2KVd4mf9axAc4omPjVRiYX2eh/9Tnt5qFWRC+mKXwmLCNWT0oLG9t6f6z2B1UwiceHC3qzRW+v2yQlYAMKjF8T5XedbDwUeXqz5tNvlP30FAH0rPxdWztFXUCfJ1wN1U7zebWufkwFdlKjI59s5qRvxoK8sDUm/vGcxKLfSjEJUgnWeYL62u80feCiHYbpof41kJOhOI0/sKA49+dpvLhzfejKZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=dnjhMpRUFdgxkr9yc534jIt1GKvXLVnxaasVi5ROSys=; b=xPk5CfLdMvBT8ajd55e6NktVG6UNyn+/x+NbzvAQC+bhIXLntVluraWyOsTO+GYEDWGmj37BsornNBfsRw84ClOHk7x7LFNvk5hWnHs/fMOL6L7GGWes7zxKx4oLeTA27fjkhhHNEg0FXECGE4Tx0tm1yhjM1t5P34NgrEpXOGQ= Received: from BN9PR03CA0791.namprd03.prod.outlook.com (2603:10b6:408:13f::16) by DM6PR12MB4220.namprd12.prod.outlook.com (2603:10b6:5:21d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:11 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:13f:cafe::55) by BN9PR03CA0791.outlook.office365.com (2603:10b6:408:13f::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 16:41:11 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:11 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:09 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 34/36] x86/pti: Add attack vector controls for pti Date: Mon, 10 Mar 2025 11:40:21 -0500 Message-ID: <20250310164023.779191-35-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022572:EE_|DM6PR12MB4220:EE_ X-MS-Office365-Filtering-Correlation-Id: f1e1272c-930e-4aa1-46b7-08dd5ff25d8a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xyP6hxYPXCy6dE62clbQbyWXTc+FLKOmjqVAzDS9cSYy4vw/zT2AnX075+aL?= =?us-ascii?Q?PHY8FBeQztuWVFxLqYiP1jTrXJnXNOu9kNujJoFvSyil6fdT//M5qFIoNHOc?= =?us-ascii?Q?qnL1UrTaA4X8kwlAGSZlZQx+43TYpiKi364EDPjk9r8jrTT0TlKRn4Ew8SkO?= =?us-ascii?Q?7f5YgPOH0KoejJGlXdkZgpr2ArrFSY0ec+LZZFv9CoqHFZ6Z/7Ab7TCcQMo0?= =?us-ascii?Q?5Ktn2iQtfiz124qPaUyBGMcrWgWNexbkq2otdo7wFxOnZ/wNo2lmz9AWSFfH?= =?us-ascii?Q?Z7LOAVMJfu2uVe+FvYiLcSsjm+TxoJF8cCP/mzC3DhLAMGOdw29zDZp6fbPP?= =?us-ascii?Q?BFicBjb23cep/fP6Vy7ZWUzc5SmEgXM9cUWfY9ISmvf7uKAVQaSudPQm7Y4W?= =?us-ascii?Q?tiuOWor8U8TFIUa8j1eM2mSo93HPdOSGhOvUGb8t8rNTKRUce/KdoH9N52uw?= =?us-ascii?Q?2DA8/FcvUTjKxSANy+x4aZFrSlFslWWLiFcqrzqnch7bOYZwElJZ83Q0ZSKr?= =?us-ascii?Q?VtR9Amg1aexA5s6oAYSPEatd25k7ZVo/cNgNhxndsvH1ZLGBoMXUfbER5fwl?= =?us-ascii?Q?ZetXvfqpeIl4tzgJj+eHzp++8+zoQZXnuDl70CAi3emTyJHNq5pYmvkq4tpt?= =?us-ascii?Q?A6Xa7p8L2CHNIHUIiEiU6izYkItFYB48n/XqLDeqKLXWCpH0UqW7S6ajU9hS?= =?us-ascii?Q?tGor7h1p1vrIXj96o/aUgVIwm/m3QKOLvyEXjcgpscc8hvpTYlSqDXEpQN1T?= =?us-ascii?Q?xktjCHIknazJd7qAX4Si4dQJlOUw5M0AljisdKciuYIithXlRPvHhnwl+tIq?= =?us-ascii?Q?H4AVK0npp1qowm5Wng08cjiIVemc45RdjjqtG/BWR/yULFjHdcPB3j+KkeHx?= =?us-ascii?Q?8qNzDys4MvoUVZeFGWrENFtILgWP3rPJ4UalcAANCNYLCkweWMpGFs+O9nq0?= =?us-ascii?Q?lcrait8SWslL0TZxwmR/2i0gQzfs7hzV+FdoY4Ind2AjNtRGHKA64rjWFw/h?= =?us-ascii?Q?78u2J/x+qfNX9rM5g1adOKeF3qRDk9h7HQJ6GFh/RQ+jC7DY+sOe1qKd1+z+?= =?us-ascii?Q?ySml5odv3S2P3YwLFGF/qySeJTh/Km2yUkP1UFqDvVHuo/+KvpsWGHV2W058?= =?us-ascii?Q?EVz9yWPrRpJhJkbGyPOMVuqBj3KohdKcx+bYdEqAAbjs9MTSXbLDPj+ubjJg?= =?us-ascii?Q?b3S6mMxoiVeTxQQP1qDJhQHEmY1dMY8s8S8x8eh1ejYentKknc0/0sLkrOuF?= =?us-ascii?Q?0ILMeJ9P5gOnFYuWjTYeKCx7K0aLzMdDxCRty7cPA55ChgJlgQGZGKCP5hEA?= =?us-ascii?Q?iYSwkcwNmIJd6j7SO3hrx5nMcdrbkCHvZAXYfn7hS2ZBhJt2jBnr7TADPwIj?= =?us-ascii?Q?9pPP9Nsr2OOzKwZeQeIKzw3pSw2K6PMrnX5u6fjMY5vPUNjCYG+Vkx616fK6?= =?us-ascii?Q?Waf7DgUuR7ULsOgfVCe+vMadOoSmhhTBGw9i3M1EfkzASoVpsFkDf64bH+rq?= =?us-ascii?Q?whj1z5uHW1zC+nE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:11.2077 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1e1272c-930e-4aa1-46b7-08dd5ff25d8a 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4220 Content-Type: text/plain; charset="utf-8" Disable PTI mitigation if user->kernel attack vector mitigations are disabled. Signed-off-by: David Kaplan --- arch/x86/mm/pti.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c index 5f0d579932c6..e5b96233aa58 100644 --- a/arch/x86/mm/pti.c +++ b/arch/x86/mm/pti.c @@ -38,6 +38,7 @@ #include #include #include +#include =20 #undef pr_fmt #define pr_fmt(fmt) "Kernel/User page tables isolation: " fmt @@ -84,7 +85,8 @@ void __init pti_check_boottime_disable(void) return; } =20 - if (cpu_mitigations_off()) + if (pti_mode =3D=3D PTI_AUTO && + !cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL)) pti_mode =3D PTI_FORCE_OFF; if (pti_mode =3D=3D PTI_FORCE_OFF) { pti_print_if_insecure("disabled on command line."); --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2044.outbound.protection.outlook.com [40.107.96.44]) (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 61BB323F393 for ; Mon, 10 Mar 2025 16:41:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624879; cv=fail; b=bVdpxSuMNCrVGFQL1hVsRkJyRcyoufKS3FVkzTMFJ37KlrIK87H+90nrz+WUKqYQF+YdsH5MfvhfnAT5zV99FYzevU6krA91Wz3LG1F4iQYF6TMhzjGfcNeXKcDQ+GWw2S6RE6yHypWd/GKfbLZbjWd/v6+j4ZTTA2XHkgHvKoo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624879; c=relaxed/simple; bh=D4+iov18Atsqo3s8fwFa5sP1hZgZkLMgDkgNsT8zBzA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mKKLBbsPopUfcN62oxGhWIz/KXc4JSpvj8j4+vcim0CR//h85J3YLGUzWz+60efG/WCoDBHADYnbUxV2+cRasRKaNYJVsZ4Zi7dxU4/P128Z02waffP/QWSnooQnB25He/R/qRvTGBB2AkAfBDVyYB/Fhqk2Khq+YzSTUitFG84= 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=4DFxiI11; arc=fail smtp.client-ip=40.107.96.44 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="4DFxiI11" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fhsE8Mk+BBpFxHA9pZ9IAXZIAeNoZxQhI/i0FhezfAiOkniqf3nbta2QJQp+IhkQZ3e6cahEbsWug3d1YHaP9mzM6Uddd5SupyNnnuGaN1gU4xU/hOuWUx+6R9SJ7vRZfYXWuAhGYJcIaGk/8yLBoqr9ICnv8YSuUYwsofm5Lv6+j24a13T48RgY9DAuUmH5DTg/LbYuX1itUZwcDX8tQyFIdOco1RJsQUBB2Ehd6WI0p5grqwBUFPMDcKKtb3+cErdNOHnmNk7wL5CnN8V69i+e01ZaS9/8rNSrRbhlkSWupQuA9HeyTezuHmUkVwMSytOBEypSSUllKNXbi+iNIw== 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=Uwp9ZnYpr+8a6uaCkQSCo0ARoiAD8iQmgNtSQTjtA8E=; b=R6aNm8wHcdBfjwsBQ3doqIan72AQFMV8L9qTiTMFvzvNW3mQ8vij1DL1i3eiWZxkOcr6BVsenB7x9ztLHMynFLYhjHhylsUjNnP3mbFhpK8MjwMovLI45rBNFvKEoZ18L8dfJjHHXL+iP3qe26N6Jv1m0cf1ZuFrh5N8mDo3QaG5UBjQQN3Y2vsblX5z3VQ2yxPGnkWqlz0GuSAaPSMIJUrv/n2se9DaDOvCl4gm0OC3/O9kjGbSeoJggHkW/k+XUVd4e4Vh6FpZD5XJmsDW24oyD5EU41HKzrkw0QYwvGflJwVjSdpY1u9DgQ8C26CNyKC91F33BhQSsppIVaYRfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=Uwp9ZnYpr+8a6uaCkQSCo0ARoiAD8iQmgNtSQTjtA8E=; b=4DFxiI11Z8wnx6B1InO68MiDNwiOovfe8dmcJ95edVil1Kg3shOVRKJ1NR5t9nG7yuoISSs8oiiTChI52YNeJ40NP2Umv4FUYmg3OrWXliA3cSKAGsz2GG35g4EYq5WHb7EcP30qg7Eg1/CTQlezj8dCXXOqHGvtOTlo8cvaCa4= Received: from BL1PR13CA0081.namprd13.prod.outlook.com (2603:10b6:208:2b8::26) by IA1PR12MB7661.namprd12.prod.outlook.com (2603:10b6:208:426::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 16:41:12 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:2b8:cafe::66) by BL1PR13CA0081.outlook.office365.com (2603:10b6:208:2b8::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.18 via Frontend Transport; Mon, 10 Mar 2025 16:41:12 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:12 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:10 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 35/36] x86/bugs: Print enabled attack vectors Date: Mon, 10 Mar 2025 11:40:22 -0500 Message-ID: <20250310164023.779191-36-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|IA1PR12MB7661:EE_ X-MS-Office365-Filtering-Correlation-Id: 36862c68-0ab2-4fa5-ca5e-08dd5ff25e2c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?WYO7xOA0OZ7hqTwf1X7d47DD+627njCICcoX+Ph4sXpJX5AmrV7kAWHNi9ug?= =?us-ascii?Q?mHX/KIeSK98LjRhfPei1k+doSOcw341qxj6qrNsxpDfIsYrfQaoLxickokcq?= =?us-ascii?Q?bFa3ETYrg67I6Q+CNjzPMDj6uL0KWtdDHf6u60cWghGi6w9Qb5NJtcFvKV1W?= =?us-ascii?Q?33E5nZPvfWcBi5Vk0UU0bUTTG7/w7am30b4+CHZTDUaiytcDvjjEqGjloV7A?= =?us-ascii?Q?Z3Xwx+wOxuqRR5cM1Lj1omGWHddtPb7QtfJV+E0JgocynrMUlUK3IfXU3s7R?= =?us-ascii?Q?HIY5lc5CEctq9hvq7+V7Fuj5p02MA/KiK8SWjx1BL0Kqn4YtazUTd2DkTEqY?= =?us-ascii?Q?RTMreM/EQsYIRUh+Y7mjGUai/Kh/wggO35QQoufSBmFZo0K8VVSOTlUz/0dn?= =?us-ascii?Q?fgN97ZCCIdDXpwY6uUZQVREGlbseit+vIR+WGxaRNfLDNU8dl88eV4ujSoiN?= =?us-ascii?Q?RzPr6PVLRVFoxgl+IJn46EozqA5X0CyaLgCMspd2SQiuVNn+g8yW74KceGpB?= =?us-ascii?Q?bQkfZlObD65OtDaU53INFMaQczfiSSVzhaFhV2NrihiOML0GBFZtHExCNK+q?= =?us-ascii?Q?QWN77km7+BoCTOCsOybyZm+UY+PF6tUILl8g3l5udQwgb2z4RhQODtkNhg1s?= =?us-ascii?Q?qW7RfUVsMyEEOYK4N0DDCfbKF+eCnN/prq8vin7I5Nl8t/vJ17YziqZ7BGOl?= =?us-ascii?Q?xGcLQv2dvnBR0LEcUcBe823MjrUGDf5hOIjlre9ZG1MJtwGNktSOabSH3/zj?= =?us-ascii?Q?iw9r5iZ6tg5oEq5rRZvNgQeJXiLl/kgGjBWBvgIa4GCBwqT676LUtV9B+bM1?= =?us-ascii?Q?5wqyj6/hX9gmf2hNs8sCDE2BzavVcZiq2trQTxV1Byz5r5SQDOnjjofHLcID?= =?us-ascii?Q?LBlBNwgeuOa0ZlBoqU4kqH4kxsQc8i/u6Xd/8pIE71YIiNcu26YniE0GS/re?= =?us-ascii?Q?cfViDiFwvDkg51/Tu1rAjg2Gal9cHOxYI9PX6ryvJTG8Bc39KDC+ismYt/7D?= =?us-ascii?Q?aVPvSf5ZXRm61iq24W3HJSR8ADh5OwSbtMBPFH8oyq4eYtvGuze4q8gwMqjd?= =?us-ascii?Q?BCxNarW/JMuy/g+Y6Qtf0/qOdEvPugGUOuKKIx6g4lk/wUrJ154NEWS8h3GD?= =?us-ascii?Q?4lsFCDWOvo9LjtSra6ygCiX6nHByPxoUmZgru5mbegXzMzHmIx9X317358o+?= =?us-ascii?Q?KvXBVS+mCjit1CbkD27POqVD+pdQyMYfvVhdvrbGSIuNmaRRv4n1oDQHNAJ2?= =?us-ascii?Q?A665C3qHe2aFYP6sAZ4p1wAZSJNHD6Z0c1uSNadERw4Kft2a2bQQBxoAZNwo?= =?us-ascii?Q?2QiiPP6hSPm7N2rqP7WxeUiGEud8coStCC52nNoZTyn9kYh7aW+ELEFYZ+98?= =?us-ascii?Q?8jkoUwLiABJiZ5HwloTy/HTB/+RG36gi1d4XL0DLua6/3ThB0pm2LiDXUq4B?= =?us-ascii?Q?JSRQ9udsQfDgjOmkuieMJgMn6IRLiNQA2V3grG00rHNliP1xipI/+gHHuAOK?= =?us-ascii?Q?QCm2M3H3FwYdb1A=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:12.2727 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 36862c68-0ab2-4fa5-ca5e-08dd5ff25e2c 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7661 Content-Type: text/plain; charset="utf-8" Print the status of enabled attack vectors and SMT mitigation status in the boot log for easier reporting and debugging. This information will also be available through sysfs. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4e1fc1468870..7ee9b8bf05e5 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -173,6 +173,34 @@ DEFINE_STATIC_KEY_FALSE(switch_mm_cond_l1d_flush); DEFINE_STATIC_KEY_FALSE(mmio_stale_data_clear); EXPORT_SYMBOL_GPL(mmio_stale_data_clear); =20 +#undef pr_fmt +#define pr_fmt(fmt) "mitigations: " fmt + +static void __init cpu_print_attack_vectors(void) +{ + pr_info("Enabled attack vectors: "); + if (cpu_mitigate_attack_vector(CPU_MITIGATE_USER_KERNEL)) + pr_cont("user_kernel, "); + if (cpu_mitigate_attack_vector(CPU_MITIGATE_USER_USER)) + pr_cont("user_user, "); + if (cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_HOST)) + pr_cont("guest_host, "); + if (cpu_mitigate_attack_vector(CPU_MITIGATE_GUEST_GUEST)) + pr_cont("guest_guest, "); + + pr_cont("SMT mitigations: "); + switch (smt_mitigations) { + case SMT_MITIGATIONS_OFF: + pr_cont("off\n"); + break; + case SMT_MITIGATIONS_AUTO: + pr_cont("auto\n"); + break; + case SMT_MITIGATIONS_ON: + pr_cont("on\n"); + } +} + void __init cpu_select_mitigations(void) { /* @@ -193,6 +221,8 @@ void __init cpu_select_mitigations(void) =20 x86_arch_cap_msr =3D x86_read_arch_cap_msr(); =20 + cpu_print_attack_vectors(); + /* Select the proper CPU mitigations before patching alternatives: */ spectre_v1_select_mitigation(); spectre_v2_select_mitigation(); --=20 2.34.1 From nobody Sat Feb 7 19:41:32 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2043.outbound.protection.outlook.com [40.107.237.43]) (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 1AB44245006 for ; Mon, 10 Mar 2025 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624883; cv=fail; b=PS74paQIgavblesTMdvbjNFlVMkiLX8Arylkqyfhq4uUFBcVAl0s63aBkcYfTjBzFl1odEZ+9vjJJEB1iyPrVSYHXF6iScO0etjZGZXIJayai1zrfbU/sFzsef65VVEagvP7tMiJpUK8mhPpItQTATvSf+7JRaWXblzBJmwRHgQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741624883; c=relaxed/simple; bh=jJct9cB5vi3B/m2+kL3nnhIeOVvQsLn6DMfmyjSjQrs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rO2D5uS/kFf6LNtNMIKJ9NLLmElJHwQGNtuQbY1PcYhiGXMzmmc57fCdEOSArBv9M41x1x+0GAMIe74uz/ANkV8tWFBHXRTHsdtYuNfuNK9qGxgRrByS4jzeBGDDg5NVt5UvAklsFSk2ZrzgSXgk5NYnQ5tWbCw6L925y0bL6dU= 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=4rtTgXcL; arc=fail smtp.client-ip=40.107.237.43 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="4rtTgXcL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hMHSXTUSsaoXq848w4sc6kH4myoA1AX21O3oguf2unLWgjRn9VP0voqKzwh54BAnHsvFLTbJYSYpuZDjN9D3xDciYyuolvXjdaP8T9GmrILmZfhCoM51AIFAjPTqK4p/0HiYoYpkUpGeaFzCoR5NBUaNQYhGb+dOH9VVdNNHs/jRCH/4uIbjSk3LUomN5Ai6hP6YkBz01GTIKoz91koYkNVYW9azXsQLiv55cs3IL6CedAMuv2WFfJGeyCPbqFuYhDLuZwRkUlBlGUHkR9LinqHNB3jh8Ti4jV2l8DB7IqHCzU3Qgna5Cf99dTIinJ/pqm7LFCkeRSSt9ANW3w5/nw== 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=XSmgqJpoj0MFr38gouY77aAf9dVJitIpFUj2d3jphjE=; b=MIdah0On+AEK/Mu7DMztWV7dvAEACxD4SXSGV6lDOPGc6XieTEy1rVyRDRx8j+EbBPALfxxR4LTeLXBvMM4lVSPekQuyEF+79ieWxClSv1KwaaEX82DpRhyjHyNOKfOeqCZ9ANiRSXGi91LtrOZbREcBxuvrneVDuRr1UO232qeXXL3guHNuWSwIUjfby7460cHtvWktGjADafpFD7FIAg8TE5YHIWxLumb6KXRjCwdsnckq8IbkKttAdkrJijUvBjpJteWf3OePihIv7kd9VQc7wb9sa7f54s6yF3GLv8KA9CFV6MRha83IrD0tX8UCE1RmH3XvniT++RxiRQ71/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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=XSmgqJpoj0MFr38gouY77aAf9dVJitIpFUj2d3jphjE=; b=4rtTgXcLw021VJcUeB0q9OqYJBGnGSnC6NAsVshvFyTMnX/X0bELNFbbgZi979y4qce+gdmh3zS3/Tt1WK0dufybGfYVtSWjprOe0w6B/JbMes4lc10bDKbSE0GrpOj6aOQw2VfUXwXmS1QjJrBuC6zTM/GVmKprUVtdKoPsyKU= Received: from MN2PR16CA0061.namprd16.prod.outlook.com (2603:10b6:208:234::30) by BY5PR12MB4067.namprd12.prod.outlook.com (2603:10b6:a03:212::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 16:41:13 +0000 Received: from BL6PEPF00022571.namprd02.prod.outlook.com (2603:10b6:208:234:cafe::78) by MN2PR16CA0061.outlook.office365.com (2603:10b6:208:234::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 16:41:13 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00022571.mail.protection.outlook.com (10.167.249.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 16:41:13 +0000 Received: from tiny.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 11:41:11 -0500 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: , Brendan Jackman , Derek Manwaring Subject: [PATCH v4 36/36] cpu: Show attack vectors in sysfs Date: Mon, 10 Mar 2025 11:40:23 -0500 Message-ID: <20250310164023.779191-37-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250310164023.779191-1-david.kaplan@amd.com> References: <20250310164023.779191-1-david.kaplan@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022571:EE_|BY5PR12MB4067:EE_ X-MS-Office365-Filtering-Correlation-Id: efa9dc2a-0ce5-44b9-6aee-08dd5ff25ed5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Y+vcm4iiI/lErc8HZYb+bHY+k11KvLd5QNMr7DAOXYMu8kmvNLmv7VZw2bPt?= =?us-ascii?Q?m8XMiOeXKIMdGTkDHrrJZJ++n9Dx8oG798E5iiBpm8Ou++qG1Chskt8PMpZW?= =?us-ascii?Q?rxIeR4DjmYTQSuyVtnnQH1unrkBfs5heHNDJ7M2OGhWnoasjranQBtQxjhYy?= =?us-ascii?Q?tuDDzmwTApBMSiu5t1k7VuQgywS4LvA/JcgSuVKgEiiSgqIjDljA/Dh/B+0k?= =?us-ascii?Q?BLO9zOuOlrsj4pdpSMyjFJlV6yb82AtXQpJ7xq8Imv64NT2Au5MV5cF+eVJk?= =?us-ascii?Q?ul8wmWpB/TDAqlvk4nwWNgODOABnDsFN/UUJB+DmKqhR+Tb9PEuw+s29yS2s?= =?us-ascii?Q?XqMZ/jxYn4KQE2p+VTphSuYCK5yyDTVXYZ+WP3g3AtKHdJp9qay4K4EEQoD5?= =?us-ascii?Q?xy1VKYfF5DyMi3pjIpR1IzpiaAZ/f8L3DSIA9Mvo3HPGjnwM3jd32BkzyXRV?= =?us-ascii?Q?41SatfeIbU8peNfDsTYnIZoYiESua+BaZtwI62KKJ+dbPHyUFDnW86B38Jqa?= =?us-ascii?Q?R0TjSoBBSg78gtLekc6opx7ODZyr7k/ClJvgd64Grdl8C0l9fKkLyW/cHul2?= =?us-ascii?Q?mvECKDdP1tGmgdU9aNk/2bxkWtpfc9wKyj4jE2drh9As1AI/pJaCorqxEya3?= =?us-ascii?Q?VLTZMSP3VZBZAxek2ENrsENyNHmeguv6VSIEOIHirikrCQsD762WvQ84KxPG?= =?us-ascii?Q?c0IFo1j5S7syB2gADhRu+o099FxjoYsdy1XZkQtquiKoFC5nGdc3Vn+Gs/k9?= =?us-ascii?Q?M2NV5/xg6HvhcZXnx2VGzRpmYLL3X8ahnOEsyVhnEzUHSHYZWqLLhz4TeHq+?= =?us-ascii?Q?wNDXp8A8txqagASzvXd2aEMkvkcmxMxjpqVOEOlff4o+4PedQC0kFk9wDs0K?= =?us-ascii?Q?fHHSDSTyGmgIE4FSlkQ+/+LoKJAirBXb50wHsd9pI1hu/kPxZM0uh7Y24Fla?= =?us-ascii?Q?7+clCEeqqMRDZVJo6X173q1O9SIYizINCUbEpB/9yn2CRwafTcJrls4znI3b?= =?us-ascii?Q?cl/aQE37Dg9GE3Zy+qd2DjsQWjfPTxdKez1VHK9LQBFalLLUAfIGtHTMX3gb?= =?us-ascii?Q?GjMJKyuieydoB/1JLJGwVXLizeQXXi2cKZS+swxZ8kQbOCs/NW3f80NBJ80h?= =?us-ascii?Q?R0HJ1fjKX5dNNgtZ6q0BOz8fs5+Mk55jtCw5fdDGQOag3hBq6y4sZqw56rv1?= =?us-ascii?Q?gBgPVckX4m37zjv7DWLAtsuv8EXrTgg2s5M64FXFFXNKv9qNZclwXAnlhhy/?= =?us-ascii?Q?A9xQ1aO2w20xlgNuCHWS8Dpn1dt0iUNaDEiSw1AqQGTEA+++wxwqxO9G5AF6?= =?us-ascii?Q?COhcqQ3tYjuUCeOTjKX8JCN+VjYSquz6nAs91RRF8QwA9HXpB0U+k8kYppO7?= =?us-ascii?Q?wmthlINQ1pOnb2nB50nCMrpiZajwMD/KmaURVfMSBrF7d/uTJv0x8VRiGJi2?= =?us-ascii?Q?PL+CE3x4DFqkMV9JzcwXCBtL1NwtaE4RCRmtzmg/g+k3DMu34Tkc3w=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 16:41:13.3778 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: efa9dc2a-0ce5-44b9-6aee-08dd5ff25ed5 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022571.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4067 Content-Type: text/plain; charset="utf-8" Show the status of currently mitigated attack vectors in /sys/devices/system/cpu/vector_mitigations/ Note that these files are not under the vulnerabilities directory so they will not be printed by 'lscpu'. Signed-off-by: David Kaplan --- drivers/base/cpu.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index a7e511849875..e9bb9c3edf91 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -20,6 +20,7 @@ #include #include #include +#include #include =20 #include "base.h" @@ -641,6 +642,70 @@ static const struct attribute_group cpu_root_vulnerabi= lities_group =3D { .attrs =3D cpu_root_vulnerabilities_attrs, }; =20 +static const char *attack_vector_state(enum cpu_attack_vectors v) +{ + return str_on_off(cpu_mitigate_attack_vector(v)); +} + +static ssize_t cpu_show_user_kernel_vector(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", attack_vector_state(CPU_MITIGATE_USER_KER= NEL)); +} + +static ssize_t cpu_show_user_user_vector(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", attack_vector_state(CPU_MITIGATE_USER_USER= )); +} + +static ssize_t cpu_show_guest_host_vector(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", attack_vector_state(CPU_MITIGATE_GUEST_HOS= T)); +} + +static ssize_t cpu_show_guest_guest_vector(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", attack_vector_state(CPU_MITIGATE_GUEST_GUE= ST)); +} + +static ssize_t cpu_show_smt_vector(struct device *dev, + struct device_attribute *attr, char *buf) +{ + switch (smt_mitigations) { + case SMT_MITIGATIONS_OFF: + return sysfs_emit(buf, "off\n"); + case SMT_MITIGATIONS_ON: + return sysfs_emit(buf, "on\n"); + case SMT_MITIGATIONS_AUTO: + return sysfs_emit(buf, "auto\n"); + } + + return 0; +} + +static DEVICE_ATTR(user_kernel, 0444, cpu_show_user_kernel_vector, NULL); +static DEVICE_ATTR(user_user, 0444, cpu_show_user_user_vector, NULL); +static DEVICE_ATTR(guest_host, 0444, cpu_show_guest_host_vector, NULL); +static DEVICE_ATTR(guest_guest, 0444, cpu_show_guest_guest_vector, NULL); +static DEVICE_ATTR(smt, 0444, cpu_show_smt_vector, NULL); + +static struct attribute *cpu_vector_mitigations_attrs[] =3D { + &dev_attr_user_kernel.attr, + &dev_attr_user_user.attr, + &dev_attr_guest_host.attr, + &dev_attr_guest_guest.attr, + &dev_attr_smt.attr, + NULL +}; + +static const struct attribute_group cpu_vector_mitigations_group =3D { + .name =3D "vector_mitigations", + .attrs =3D cpu_vector_mitigations_attrs, +}; + static void __init cpu_register_vulnerabilities(void) { struct device *dev =3D bus_get_dev_root(&cpu_subsys); @@ -648,6 +713,8 @@ static void __init cpu_register_vulnerabilities(void) if (dev) { if (sysfs_create_group(&dev->kobj, &cpu_root_vulnerabilities_group)) pr_err("Unable to register CPU vulnerabilities\n"); + if (sysfs_create_group(&dev->kobj, &cpu_vector_mitigations_group)) + pr_err("Unable to register CPU attack vectors\n"); put_device(dev); } } --=20 2.34.1