From nobody Sat Feb 7 02:15:01 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010002.outbound.protection.outlook.com [52.101.46.2]) (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 CA075261B9C for ; Mon, 13 Oct 2025 14:35:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366122; cv=fail; b=nijBGgsFok2SIZp4ogD7/Dc5a9odIC2cww8YFIEXRi0MG/Vr5Z6pWFJmzk2aFHz0P3whdvOq01ubxnNC7mRps7b5cIZs0Rs6VScf0nYTezMPAnSm4gNRns3hP6+9F9XMY18CGS47XlGLIusp8woeNR+bqMCMXuUU0/c5u9ZE5/w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366122; c=relaxed/simple; bh=TLfzB99JOZOJ29uO0YP7DkX02c4QoKQtktNAKR5MKHQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=W0VuHhYNAQ1OTvqrAoNfoEZl8wLQQFgK724/0CzGbh1FVrlMt1PiEr5LdNQ7aI6kl7txiOGqFTM6Ui4A2mhgYcdrfsLE/CK1rhopSDiMhqgCYxpNapmuDpMryXs3TCJV6/8yeQEs440xxtD0xmtu+ZlouWmaazIkll2PKdlog6c= 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=tmBwm/3V; arc=fail smtp.client-ip=52.101.46.2 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="tmBwm/3V" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ApvlZwYEL+vV7lPy437Myg5XPE71ZicOvP391lbpfUmdaYNUI1WuLVoSvX2oIICI+HKG+6mSw63H/wXJ6zy5NbsOD0lKXP3WaSli1487SLQfl8TksNpMDv7zJB2P+9CTAvbl9+ExVayvEgjldi9NdT2+rrPCWxqEZW1I5R7GfVbbQA3CjMD31R2J7saRJWjMGeVJh0qtwORqMYgZzAcsdH1lCptLfh2AlDNcQ9B6HoTkILMrT5s29xtlRI3RtDV0S0H0pxS3J5/8surht4mmbpCWndLVlbdMGprU6y1KPUH5hMERvTIdyNIcP1b5SYberkFFrJrCYy85CPh5LPtZjg== 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=YC4AQHPsZl3n4cnt7w3EZcP+dCeYOC4Met4ryNVaPPA=; b=JvDXI35NkI5FUnNLHX6SgeF5Jl194+32moyT43B3MpqBQYkqmzOeY99K6/jhB5uaXmOpcD3RyRbMMGrxNDCX48xGtnslkLIh9Dn3kkLC5vA74bqqnKOnQ8hTt6qmg8JZ7UyzzBSbHDThXBY1YCDQzrjxDV1bhOG+/7CEeK/0HAlRMonSF5RN/UtWZRcBGhj3y2fsAt7yLLZ7WfGKLoMuQfcxvIZhYX+EAaqdVqyrwiaxt/RzJzsBOsK+3sHktEOcROkkIOjUf3MquVjv40h+OVg1mYEpaZvBFqDnzo3hrUXfZRCy9WnZy3J6SuzwDdYMWGTed1+lERHN12tg4JZ5IA== 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=YC4AQHPsZl3n4cnt7w3EZcP+dCeYOC4Met4ryNVaPPA=; b=tmBwm/3VbOmi6Zj32MPbERKZC7e9p+3ZgzxhRHkOo/G+7W8gTPHz4uMvAOJsJ0PoeVHYYk8fktFG9OWd5p1T+A7UU2wzfprYzxOA5TmsOYkGlxIYS9v1/WdAeFa8h4K53NEsw64L7eJI2DU1t6yWHqJtPdl1ckgl0Tx2AN3/xkQ= Received: from SA1P222CA0114.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::21) by DS7PR12MB6005.namprd12.prod.outlook.com (2603:10b6:8:7c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:18 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::af) by SA1P222CA0114.outlook.office365.com (2603:10b6:806:3c5::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:17 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:16 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 01/56] Documentation/admin-guide: Add documentation Date: Mon, 13 Oct 2025 09:33:49 -0500 Message-ID: <20251013143444.3999-2-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|DS7PR12MB6005:EE_ X-MS-Office365-Filtering-Correlation-Id: 51cc2e9d-dd8a-4999-0724-08de0a65badf 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?Bm02ZPcWA+FB5HgDHBbHWQqKYpEUG5zSZTsqwt8tXxE9ed+dxwAcuepJG4Oc?= =?us-ascii?Q?jsRamSKQGwi86qvOqXQ2KkTigSbH3Kwe5nGZ2pCc8HjK4Lstr80nNer0T/kI?= =?us-ascii?Q?H0GahEgcoa+8Uoa+WwktOtSEGKA50o9ITQwev9cbcFibZ2+WMgXWnfdJpk+e?= =?us-ascii?Q?OpIs9IZPtFjn6jLlzRAPtPEjcybLqXAliJI05yOP24NGohj4yk6LqEFhqp6K?= =?us-ascii?Q?BWk3dmSmaLBKfEyt5qUp3aVBxnybgNzR7C38JTp02xqm1vDed1jYKDTYeKep?= =?us-ascii?Q?SowqPIgokg/u5hs47VkGk5gdc9sRJB/59FJqix1zpWsHJIdGE25KEn9uJoZK?= =?us-ascii?Q?1bxjEZkvXxdr4qS9k9lRPFMSzJY23sKw6QRG64bzlkXt7NcQCTe/4O76LFkW?= =?us-ascii?Q?14saSoZrQZJVGby4Eoq2+NZadsXS+RcTHLuvMmAVY+c4bpquXPg8CViW4qv3?= =?us-ascii?Q?GsJrn7SXbCYpNK9ICl7ncJU5ZzE2No1WmDNzjRMQ8DnH7BasoAzm2GsEOQvu?= =?us-ascii?Q?qOfCnzR45clJW3+xjVoh3VlIFfycYBLwmXgZGblVPEW2EFJVtWZVSM0MnRBF?= =?us-ascii?Q?P/C1z/N7jrOySQ0aVx/fF6GW5+VASnSeMHIOKVFeJm5FikaIaneEOsCf+g63?= =?us-ascii?Q?mtIy5DmA+v7BZ0076wVr/kgeuqwWJRdRsKUpubi33bpdCt/YDkj13/iuntHi?= =?us-ascii?Q?yUJIKZRF6ySKO5hrJL3+YI8lDJLuH9kffJ9+pLbYV4ijOc2LYq3nQ/46T7Ld?= =?us-ascii?Q?NYskYT0JtI32CnsFzuSCcRZtNnxmxVY3N7Sh8Nj3xEb7D/hzNd31/1wWgBUP?= =?us-ascii?Q?uABTbWiWCTOToppnjSnWf1SPGLoCncmWBkJm6Iw3lavToAP+MTFLCPKCyYx0?= =?us-ascii?Q?KT0pl+RWsYdoneALfIA1a9FRwCb5SSlOSi6VK93y9/7Hl+L2ICYudyv12Ceu?= =?us-ascii?Q?ehUHkeUzwdKCnqBgF5rrFVq++qhWZlgJ7R5icPzcWBCpG8uwf5jU8O+sjVY7?= =?us-ascii?Q?Kv022r69kE522GbNSAG6t9Hwg6SleFZXsQXDkkGTZHXAi0Kzs/CzyLOmSkzP?= =?us-ascii?Q?HNFsh4c20vWxP0es612liw6UJJeOL5glCVip7sqzPDYSZqQtqvCqNQAX1y/T?= =?us-ascii?Q?PN/G30vCsL5pOIhJbGMDrWoHXzdAQRqzjPE+7/dCkdRMabQBSt4+5MPQXAUg?= =?us-ascii?Q?GEspgRIdrenLYT4G8hskR0DXUbJ0iOpxHNP4jQSacAnCK09T8jcnA2i/LSNM?= =?us-ascii?Q?qtzKNERmYFz7sDlHid4unWPsgo2wMRduIiGdta2fRcgyZZhm1crbuhCgMjFC?= =?us-ascii?Q?eiqICNWkMtyfTL6VH+jxYFysn4Dmws2YrgipWa6totSesn+TYkuM3+8JgaDv?= =?us-ascii?Q?/4ZxdH9h/DWCrG5lgsIfhcKI6Mfk9I5mmXS6rKw/3rAksCCbMFYeecONbc73?= =?us-ascii?Q?U10OZ5wFSOn0h41J7JdPf81YRyhZFsr6ZGiVgYgi33DrDHdmlOuPIfEOkXcy?= =?us-ascii?Q?HTrRjhJAlqvrXFg5gq1FyNUDH/kJxUJnRVMRUmv1q2O0cuuNxtv64+mHsMhy?= =?us-ascii?Q?6MwnoomaZSkvjp0vsJw=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:17.5707 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 51cc2e9d-dd8a-4999-0724-08de0a65badf X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6005 Content-Type: text/plain; charset="utf-8" Add new documentation for the dynamic mitigation feature. Signed-off-by: David Kaplan --- .../hw-vuln/dynamic_mitigations.rst | 75 +++++++++++++++++++ Documentation/admin-guide/hw-vuln/index.rst | 1 + 2 files changed, 76 insertions(+) create mode 100644 Documentation/admin-guide/hw-vuln/dynamic_mitigations.r= st diff --git a/Documentation/admin-guide/hw-vuln/dynamic_mitigations.rst b/Do= cumentation/admin-guide/hw-vuln/dynamic_mitigations.rst new file mode 100644 index 000000000000..9904e6ec9be5 --- /dev/null +++ b/Documentation/admin-guide/hw-vuln/dynamic_mitigations.rst @@ -0,0 +1,75 @@ +.. SPDX-License-Identifier: GPL-2.0 + +Dynamic Mitigations +------------------- + +Dynamic mitigation support enables the re-configuration of CPU vulnerabili= ty +mitigations through sysfs. The file /sys/devices/system/cpu/mitigations +contains the current set of mitigation-related options. The file can be w= ritten +to in order to make the kernel re-select and re-apply mitigations without a +reboot or kexec. + +The data written to the file should be command line options related to +mitigation controls (e.g., "mitigations=3Dauto spectre_v2=3Dretpoline mds= =3Doff"). +When the file is written, all previous selections related to mitigation co= ntrols +are discarded and the new options are evaluated. Any non-mitigation relat= ed +options are ignored. + +Dynamic mitigations are available if the CONFIG_DYNAMIC_MITIGATIONS option= is +selected. + +Purpose +------- + +Dynamic mitigations serve two primary purposes: + +Move Policy To Userspace +^^^^^^^^^^^^^^^^^^^^^^^^ + +Mitigation choices are related to the security policy and posture of the s= ystem. +Most mitigations are only necessary on shared, multi-user systems if untru= sted +code may be run on the system, such as through untrusted userspace or untr= usted +virtual machines. The kernel may not know how the system will be used on = boot, +and therefore must adopt a strong security posture for safety. + +With dynamic mitigations, userspace can re-select mitigations once the nee= ds of +the system can be determined and more policy information is available. + +Mitigation Testing +^^^^^^^^^^^^^^^^^^ + +Dynamic mitigation support makes it easy to toggle individual mitigations = or +choose between different mitigation options without the expense of a reboo= t or +kexec. This may be useful when evaluating the performance of various +mitigation options. It can also be useful for performing bug fixes withou= t a +reboot, in case a particular mitigation is undesired or buggy. + +Caveats +------- + +There are a few limitations to dynamic mitigation support: + +Runtime Limitations +^^^^^^^^^^^^^^^^^^^ + +There are a few mitigations that cannot be toggled at runtime due to the w= ay +they are structured. Specifically, kernel PTI (page table isolation) cann= ot be +toggled because of the complexity of this mitigation. Additionally, SMT c= annot +be disabled at runtime. Therefore, if a bug mitigation requires disabling= SMT, +a warning message will be printed. + +BPF JIT +^^^^^^^ + +There is currently no way to recompile already JIT'd BPF programs. This c= an +present a security problem if moving from a less secure security posture t= o a +more secure one. It is recommended to either unload BPF programs prior to +re-configuring mitigations, ensure that security settings only become less +restrictive over time, or disable use of the BPF JIT. + +Performance +----------- + +Re-configuring mitigations is done under the biggest of hammers. All task= s are +frozen, all cores are stopped, interrupts are masked, etc. This may affect +system responsiveness if lots of patching must be done. diff --git a/Documentation/admin-guide/hw-vuln/index.rst b/Documentation/ad= min-guide/hw-vuln/index.rst index 55d747511f83..44418bad5895 100644 --- a/Documentation/admin-guide/hw-vuln/index.rst +++ b/Documentation/admin-guide/hw-vuln/index.rst @@ -27,3 +27,4 @@ are configurable at compile, boot or run time. old_microcode indirect-target-selection vmscape + dynamic_mitigations --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010052.outbound.protection.outlook.com [52.101.201.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 3D7D6221F20 for ; Mon, 13 Oct 2025 14:35:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366124; cv=fail; b=Dfino3lS29snbHOJPQUe6Uos220O9mOmfC8vssY37X5k05ncVi/Su8EbgCGXAR3oFLgtOoIzmWmCZHJmHR3CRkCHeYxcTE/HYZ6VFlEvfbHv3R2PK8bBuJ4cY41JFjDaMHRG1lvJ2JMSQfQuHAw8JHv9pnSB3o03YI/bCRUb8Ao= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366124; c=relaxed/simple; bh=Z+V0VqAiyUiwEPoudOXtIMOgZqXke1PpNE9TTBDXA8k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XOnpcqLc53fDQDho6Pg/baz/JSti4+viLn4Ln/jl7MwQ2b5eyD8iiWwdquW4UDxKGL1HpG3Hzq7ZE9oCnqRRxiOrndivXy+qKm+RT0esI65AkvWebK4RbRyqGU72gxpqMACXkjaUTlcT6DgwAql9y6bT6G/ECAMhXPoZ3yN/oew= 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=GXDPqoef; arc=fail smtp.client-ip=52.101.201.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="GXDPqoef" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xfRG0M2DzIZNZ8gdr8L2MB06zaVxi6bx1Ei9oe/eEOqgfT7ZEk75y+frrSh+IkmKrZCgPrTs29KmVpp4nJiXJtkJWhq5Za4AvbKpqEm7/P2o76ybElb+VoWETzRywXRcDlNhNMy19QUFTthE7gwAQyRLrCxyXBMaT59k+70Sv1lmq3gNI4m9F1MrGgY3YAPjZgDasCcVuDZFN25ibxRm8oXRUWc1QSKVhF738rRsC9tXLHCcrYyWl0rhIsRXLSPNLy/gljxb5xJzHGnXPqTo+RF+pzO592vGV34m6XVJ5IYHF6QjPiEhuBHa6kx1tLCYTyuMhLY8LxMWnXYNsyAeGQ== 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=vZw7pUrCjWw5amuu4qZ+TwVr91YONnlo34UrmL5LDfM=; b=dbAXzGwfFiE6M5bsAkI0oEMvtOFxOOuxJLhGRngTTnjjf967BERLOCcrd1cIfRUJ1yFXAT4Ds0QCzuivr+LzFN3scr/wuZQxNVND4ieAmcwKLWskga914Spr8LI5TYpfuTnwD1PpNFpFn/CpBD8iJUKuR1Qeiavd1Qg/r/DdBPvMxeo/EaaQGoPV0UUzmwt4eArw+o0aGhxFTcmKQy4lx4q53nm3l7pMaVVLoDEouIatMm62xPzUGt/FkjZhSnJdyd4PHqos5m58nOZvoFR/D6JmpQCZNXmh4yExo/7YcPItn/PeF8o+VbUWbULB3q3nor5Iq2daau/KJVDCJJbcFQ== 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=vZw7pUrCjWw5amuu4qZ+TwVr91YONnlo34UrmL5LDfM=; b=GXDPqoefW5p4F4se2iRStUIah9pXTvktR15EYput7pa4AvjMA1NP42YiIXqgmJamn9JJjiKeKGjI43pWtAjCb9/Eu71twHd9FuF1yWhUlHf/TJImu4dRJyY6kacZCUAzXzUv4i/ln5adO/gGVwxgM8ufCTgOGEhvkEbu+zQqoN0= Received: from SA1P222CA0107.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::28) by PH0PR12MB7012.namprd12.prod.outlook.com (2603:10b6:510:21c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:18 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::68) by SA1P222CA0107.outlook.office365.com (2603:10b6:806:3c5::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:18 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:17 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 02/56] x86/Kconfig: Add CONFIG_DYNAMIC_MITIGATIONS Date: Mon, 13 Oct 2025 09:33:50 -0500 Message-ID: <20251013143444.3999-3-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|PH0PR12MB7012:EE_ X-MS-Office365-Filtering-Correlation-Id: e16af8eb-b764-4be0-f35f-08de0a65bb78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TD9rHBbNb+VHD3Zi+FCLn/Ojykl9pdz9vCu12JHOobz7+zvCbn5ksWGHs79+?= =?us-ascii?Q?Q0xIr5WqzKBB7XAbOl/TOpQ4TwkXATpPc7Z7akbdXZ3FKR/Uj7aIhkUiGcah?= =?us-ascii?Q?qaPSk/OYA/i4kPzT/yzZx5IhzAAKqUbnohFj+7SKjI3Be79SrAZSwV9hodvF?= =?us-ascii?Q?5Q5RWVL/VGm7cu6vShqcCWrR15rmUla1i0u6Qx3VZBZTwsp4U+5x2MUdhNV8?= =?us-ascii?Q?Ijrzr+XixUYhsprwT7nqnrAwOf3PwUctJpcZ/NXiwSvdfSfje0BDGPteD5mO?= =?us-ascii?Q?5yE7121cIsMOdM9ppwmBPbUhb+21m14WDBY4i/LTaeMrUGiJho1hxFm8VY5R?= =?us-ascii?Q?lNdLo2QJK+iqksL0cBWJbkDIeXytF6GS6qBr5LzJY40oS/I3eUQQ0HakSMEP?= =?us-ascii?Q?0qL3gWR1XxPnRA+z4YTgJKQjQ3VzH1XcRC7m8W3upCeNlf5D09s5D4foV8oc?= =?us-ascii?Q?lB554hM3SI9xRKA8gQytgHDncNsTqdM0mZ4ArTwHDxm3OJcJGqwn7RnTrQlD?= =?us-ascii?Q?n//fu6kyFrM0oFoG5+A1/aK28getK5kSaU9LZXJvFkZAKchiDh92wXx7EO5l?= =?us-ascii?Q?HCxijzjq3vEz4OL7pWTfPePbqmKjfpIhhKVvFumCfsu2iqabODbi7IBuKw1z?= =?us-ascii?Q?hcuZW7o5ODxXwDZzScIiFgbP8cajXqfCq3heBjqE05PMfAKbvPLbNWhy6smL?= =?us-ascii?Q?qaRij/zqSWRxGJUJwX7N/YxW/XaO3qOndzJqlAOQUVVaMAelcozj9905mVws?= =?us-ascii?Q?6Fl033EgqDAoT2pCgP0n5PuzNtbiCZiUN97WzKSkM+XHSAYd3UrhX18bA1Ok?= =?us-ascii?Q?RV6351afB5XcThxZUl7Rv9MFMSvgoFKbGDRt1UfgW+qun8zPLAySnzlovfD2?= =?us-ascii?Q?vplLykRHDmb04MFLgVKuQcjtSmSfagt2SWNmoT/u3CQ8Wi9sym8RKBVsPGCI?= =?us-ascii?Q?Lv5eEdcwtg4NAGDiiKUFRFbh80ibzoWBinKaa/QTLKalQqlMVrMLb+F2TTht?= =?us-ascii?Q?sobZj875tHTHCI7fBSJayNXl0lmMiYX5xv3UqgYH3UaxrT3aAsyoJPmctZWL?= =?us-ascii?Q?6bslmltcNM1x/r3pkn9fL2wBSnLAADfbAm6E8sZ+r/rH4hKcI6J2zVhg2Lms?= =?us-ascii?Q?5JpKHXW8NXfOjtAWnoBIS+iseDrumcCUzaVGa8ZqKpUPZGLK+tQpfdF6KUoA?= =?us-ascii?Q?MTX7m7WWSWr6OgkI5y9DTFYm3wJSxv76IDVBy/rz063cBwiQDDPjaeGafFWX?= =?us-ascii?Q?HIICF4vxT9tN8u4iepwIaWnQVvhbIZ9z1yZRB39ewkSK2YKujjo0q+NuqiKW?= =?us-ascii?Q?N1+3Jatfsr/Cms3fBXWrQerhyNEcn9XNXfKJqz4HZfpoJNMBj9M/408cwpG1?= =?us-ascii?Q?E7lPV/e/Fjp68+A6kTChQ28La98EEPhtup1CoSaJzbjzuhIbCo3JGW6wCIK+?= =?us-ascii?Q?u33bE/XtLq0NJWCzutESG1WTLNmu9e1v7VoRY1m/uDeXocHZr2Lz0Fwl3vVa?= =?us-ascii?Q?hmaO/GaddwPhV3Lk9ImvIONkiJ/pojBR3nYbRJXS45NlQGkBakK0KaOsFtYa?= =?us-ascii?Q?QJQ9JW4nNSh7xVkWAIE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:18.5829 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e16af8eb-b764-4be0-f35f-08de0a65bb78 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7012 Content-Type: text/plain; charset="utf-8" CONFIG_DYNAMIC_MITIGATIONS enables support for runtime re-patching of the kernel when mitigation selections are changed. It depends on CONFIG_LIVEPATCH because it needs modules to preserve all their ELF information for later re-patching. It also depends on CONFIG_FREEZER because re-patching must be done while all tasks are in the freezer to avoid race conditions. CONFIG_DEBUG_ENTRY must be false because dynamic mitigations relies on a non-reentrant NMI handler which does not unmask NMIs early. CONFIG_DYNAMIC_MITIGATIONS is optional because support for dynamic mitigations does increase runtime kernel memory usage. Signed-off-by: David Kaplan --- arch/x86/Kconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index fa3b616af03a..0c8c1e508223 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2711,6 +2711,18 @@ config MITIGATION_VMSCAPE Enable mitigation for VMSCAPE attacks. VMSCAPE is a hardware security vulnerability on Intel and AMD CPUs that may allow a guest to do Spectre v2 style attacks on userspace hypervisor. + +config DYNAMIC_MITIGATIONS + bool "Support dynamic reconfiguration of CPU mitigations at runtime" + depends on LIVEPATCH && FREEZER && !DEBUG_ENTRY + default y + help + Allow CPU mitigations to be reconfigured at runtime via + sysfs. Dynamic mitigation support requires extra kernel memory + to keep around alternative information after kernel boot but + allows CPU mitigation settings to be modified without a + kexec/reboot. + endif =20 config ARCH_HAS_ADD_PAGES --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012052.outbound.protection.outlook.com [40.107.209.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 A919A2749C0 for ; Mon, 13 Oct 2025 14:35:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366124; cv=fail; b=VhJLJS5myM0VVUW3ScCL4YouiskX10hfmQgUFez6/rTVSK46q2pMRtBy7YNVDba3kifYt0Iwy3I3vxunTzBkiUR+wl1AWRT3LqikWKrzdGZWvc9rqOX7OcjfCvcKb4w9lXgaI69jrR18q8HbQdlm4YIvUIGvY906Y8CB9cRz75c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366124; c=relaxed/simple; bh=HNyYgx3cUteajAbSwvnclOOTLShqCPcufF+EbojvO2Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZMlPqVx8CjDoz60sK92pjr/m3V54qo87iY61b+wuK/4oNTYziBV5WG/NGKsSS50iVu1SWs/KgtRupbO3jvfjuTiqk5Y/4FLwzZDFfeTTyeelX+nZHjp5EFqGV3gLDtM6PeNtxHtQqh6QxjoCoO8CvhvIB4Qjjc/5glJqSpb51kc= 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=u+abPHS/; arc=fail smtp.client-ip=40.107.209.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="u+abPHS/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PT2LKdl5KBGKUDUQLg3ej9NxjA+Q79BQ8xQ0SkCP7z77yOGJBDLHlixsKY+41fzk7GJTPuVE8E6nILAQ2nNSB8/rFRsrv9zO26gTGSf1P2W23xSYDmCV7ZYdvEdAAEC4VqvB0nmVuyJgGAla0pgT0/GA0mqu4NEszfsiHdsnsD4xMFkmzcsK8/+yIqtcxTaSnXfRBz3gnk245keKyWgy4423i1Mxlhm+lUTpolMroMBtBhQzEEbEgLnnzEz66HTLQzXKBiO27NWgXZr9RMcPg12FnZloltq3V1aUAjPREPWC3zyN/MS6EW0qdcK88qWIedQyUHcacF7AWV3laExSnw== 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=zMBw/bAR7wRRL/mt9K/bCy/gqSguRjKCJabxanQ3sSE=; b=uoGtnaJLBo7JsR6fS+FroJ4EfYpIkxf/oK443NDRH0TIOvbkJ+RShmlLmeX4CIfziPYnnGKNs8t8ZKlzOI6gGqrHltf8AhVrQ2BRhA2b6pcae+BL7KqR+peeYaiixm+lQPPuoRN+3yl+L+pEVwmAR7pbX2dmXRNUtqQjIWvHGE9oRogQMBs+HhRNgken2NujHM3gepRvwz458QsraKDC+ygw/4epV4kRHMRvJu0NTVZt00zEKsku+rgwDNue67EM51U+ecMyWt1D0wySlo56q9ghaPEUxJaxfwJlQnmeO8MUzJd6+D5MpGGZw+OAfzx1VWGMDDKudfZ1PhSEUfETfw== 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=zMBw/bAR7wRRL/mt9K/bCy/gqSguRjKCJabxanQ3sSE=; b=u+abPHS/vExdwCau2JViFd1OpV9kQx4KeYszrjy20y0ejsu8ZX1jM4QhGaue+7GGFkQmwnNhnrpqeBhm5vv6/azdfLopXcnIP+JrokB5mSkSoBhiBOkBbwiAI/IcoAxnGzrNB2EttuwD47letdzuqqLYsE2i5BJDVica0QMMGjw= Received: from SA1P222CA0103.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::7) by LV9PR12MB9830.namprd12.prod.outlook.com (2603:10b6:408:2ec::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:19 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::6) by SA1P222CA0103.outlook.office365.com (2603:10b6:806:3c5::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:19 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:18 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 03/56] cpu: Reset global mitigations Date: Mon, 13 Oct 2025 09:33:51 -0500 Message-ID: <20251013143444.3999-4-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|LV9PR12MB9830:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a119bc2-b39e-41ed-a3e4-08de0a65bc17 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Dfafey3gE9i9ILnCuypv6At/hImFhliS+G7n4GQqt03XxTez85C5wXT6mOLg?= =?us-ascii?Q?sBy8cOwUCJGHMTpA3piGS/nxsW2OGyzZbd1zVJIHRkbnoWIFxJjDHryPcYp6?= =?us-ascii?Q?JZyiJprEXPlQZd/sapl/C42O5MCCsNf5TmdbG2TZCOfgF7/FJTq0M6EPldg3?= =?us-ascii?Q?P78417TrT0SNInRRiZBiUP8HvQCHSVigk3FMSQrC32wa+xjH1mGZNogO6y2V?= =?us-ascii?Q?QSmh+n3cmWgIRrov04VVjs9lMFMwPlqxheXqv3SeYdhkQAlYFJnz0MnYAncT?= =?us-ascii?Q?q65vnqzOqu1OiKl16yY6VKLwAJ8m4qP5XQMSgRv78LntJepo280rnCd0SlmM?= =?us-ascii?Q?BUDCAD5x0NA3cLeQA9Y3Jezx9YUuR6kn9Z1Okenk7mieImYcD95jRMQVlarC?= =?us-ascii?Q?sC+UWMv492kpRlOmDLPs6dJUhnfiSI9z/O2DVTMwwpJ34GUVHsOtXlvtgNIz?= =?us-ascii?Q?pqH5zNXRmb1166JFImWen0LIOep9yBYej1gnqGI3Pwiq952LUbpYmPCxXK7E?= =?us-ascii?Q?B7AS8X61NwtI1nGB83oAPASM7XnViQqxEhB/t0v+lH32j+CQXcyQC6PCZ8Lp?= =?us-ascii?Q?KS98U3MIRt7AvSSrGt3rQx93SzM8KwGVVCGOirZh7D5wHwBdVVMK9VVSC/XI?= =?us-ascii?Q?libwePZqlnYqyQU/BswJvzzGko9G5IOn2EIAafi2yVt8Hy1/dYa4NBc4om26?= =?us-ascii?Q?D3xrgL2biDmQacQbnvf3QMt1oBwvmzO9Pj/8RleeBC+GfM7L7vMAykL5+tmu?= =?us-ascii?Q?aLm1Smc1d0PR7WNmUn+wq97rZdtykQXR2+UO3PwZjFRLNW5a9mPbcO+rScU5?= =?us-ascii?Q?AkfniherPxOFQ7k3IEEMQiS/1fjSA+HxVyEbOJau7wT52CBc8DGe3fnOa3wY?= =?us-ascii?Q?+xYLx1ItaJ2Yr3qoaiF8a35rmbTLrzT9cwvTkprVB9PhfS1WI1NC1ovtrlZN?= =?us-ascii?Q?JpuMK4QEG9plJDCK9gg4iU3xqjcVdR4mfb6AWii0mg0aSz3stpx+mCgfDDQt?= =?us-ascii?Q?QBRjUW9xMqkqB65AOn5svos2FOV3xxH0wnPL/JqngfWQe6tFdBSF9NsEwQ7y?= =?us-ascii?Q?e4iKW3kOeOdkyj8cRz/Dg/rlIp+adsbUSgEFjNCmwRAl8opGlg7O/3WHqkTo?= =?us-ascii?Q?qag4XVuz+q/qUk/28Q9bDg6n9be6nepxA9MoP5TnJVJH5mMxo6xsrdg5FZKb?= =?us-ascii?Q?2b6LTDpOQEyfIFGl1n4cTtm9bkUMCIMRHAjzlul36ZnSRF1fsMFKL2ExdLbO?= =?us-ascii?Q?v63Ygq89TgV7ORamubVQDJy7EcKgugXEfgVwu/lurMfZx/SWJjM5Q26+qkf1?= =?us-ascii?Q?53iVmrY5bfWbMvIiEJ/F8qsUaTl5d114bUGKU4pZTV2Pat30nmR8WrWJnDZg?= =?us-ascii?Q?RnL+E3tUh5cAoslx6KmkC8kC8JgJVwj/YRzzyhhYuCZcQ/icgCP1nJgoWjp4?= =?us-ascii?Q?qFTPmEXsXb1llRRTVENIFRi87rBky7CmljbtNRMglRUTdDGdk3g38sNfmeQm?= =?us-ascii?Q?judagDzgtugZ1W3zwfgVZtSk69ISMX0bZCYtcNN0gnce35paGOIBMxZshvZk?= =?us-ascii?Q?hk0h7V3CSeqga8yEBz8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:19.6233 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a119bc2-b39e-41ed-a3e4-08de0a65bc17 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9830 Content-Type: text/plain; charset="utf-8" Reset global mitigations, including attack vectors and then call the arch-specific function to reset further mitigations. Signed-off-by: David Kaplan --- include/linux/cpu.h | 3 +++ kernel/cpu.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 487b3bf2e1ea..3da629a76a49 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -208,6 +208,9 @@ enum smt_mitigations { SMT_MITIGATIONS_ON, }; =20 +void cpu_reset_mitigations(void); +void arch_cpu_reset_mitigations(void); + #ifdef CONFIG_CPU_MITIGATIONS extern bool cpu_mitigations_off(void); extern bool cpu_mitigations_auto_nosmt(void); diff --git a/kernel/cpu.c b/kernel/cpu.c index db9f6c539b28..910249f6217a 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -3171,6 +3171,7 @@ void __init boot_cpu_hotplug_init(void) } =20 #ifdef CONFIG_CPU_MITIGATIONS + /* * All except the cross-thread attack vector are mitigated by default. * Cross-thread mitigation often requires disabling SMT which is expensive @@ -3326,3 +3327,20 @@ static int __init mitigations_parse_cmdline(char *ar= g) } #endif early_param("mitigations", mitigations_parse_cmdline); + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void __weak arch_cpu_reset_mitigations(void) +{ +} + +void cpu_reset_mitigations(void) +{ + smt_mitigations =3D SMT_MITIGATIONS_AUTO; + cpu_mitigations =3D CPU_MITIGATIONS_AUTO; + attack_vectors[CPU_MITIGATE_USER_KERNEL] =3D true; + attack_vectors[CPU_MITIGATE_USER_USER] =3D true; + attack_vectors[CPU_MITIGATE_GUEST_HOST] =3D IS_ENABLED(CONFIG_KVM); + attack_vectors[CPU_MITIGATE_GUEST_GUEST] =3D IS_ENABLED(CONFIG_KVM); + arch_cpu_reset_mitigations(); +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010019.outbound.protection.outlook.com [52.101.193.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 669B52FE58D for ; Mon, 13 Oct 2025 14:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; cv=fail; b=gOCQBYR4DvjE7mb2af39WwU9auoEK6B1TnDujcIYzGv+7+fgYtcHVdUqO+/0ctTvqR7fWZsu6tIfsAPonwo9+mLJl1IllAn6s8hec9SpekyZLmUdAXYIUNpeWUSKVLDkhaGwgDRChjQJSpqWVKtoL9yhEBSMBf6n5XDERAvRhbo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; c=relaxed/simple; bh=mPmO4VjgJZZcCIqmj+H4S/il9Swbp6apQuxe3Q8Py9U=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IsNU9YSUEUShGMXg9L612BUCCJRIwVNTSMw8oQtn1VPEB9QWjn9xt4JmaszixzuB1HBgWLnnK2BDJ8wg1dUNJNYlQW2K46UR1sd7qLnSa1jqINNt5Rf8a4uhHUcrrSzS3kVW8M/rFuWQPS/osnmL0P4xHz7zDNP/kvxhBve2jyg= 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=ZoEQPvjT; arc=fail smtp.client-ip=52.101.193.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="ZoEQPvjT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cY6M7RqcNvym/jkKWwDXS4cDknbsZhAtQAHicziLMm+xqVe016VqjKoU4dJJRRaVC4zz06G85MxszZ27ECpdnNlhZYWX9HNi9I9xgJFgGjqo89MC/a+FfsFSoo1Qd7cwligouL4bP42iVoDINaXkwQGy7Nlckt2zjoAEZ/Et/HnojdJHLejgIV/DX2tcUqqd8nBijZhS12chM32qJsHuopEo3mBkreOrdhLAKznXjl3efLvLPY6aSjuZ+ikvAfXuY7+RVICer8FOCVuFyU9lqnl6PZMlGjPIrjJ8KdLdGhzLaeGwW3DGBkEzfJAY0iXBu7BnW7PHyG0XP7imT+NaeQ== 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=SRBL9Hj4FaW4VfFzhKJk0IoidMKl7iNIeZN9GRd362Y=; b=xYxbzuBinMinmjXa1nZtnzJxIqmIcJbD13dLiD/RzFJu0ADkd6erc3ggqcLvnxXUfdXF0T+cp26vcqi9RGs0fhrbVtr0EMuRE+Bziv1ubvQnzfhqly2jKAWdKaWTSZbYPA2kfqPgqO4G3fZExpME9lPOWdKhESE4rsHqF2hyWgMLHiU4HRMjG5T28FXxTcaej1qE3+TcbwQobP0eEFOTV3LKc7liR/SFqkty+Uj6iliSbodGriiDLjQcNAmSsWmXj0YJvOMPJ+wlOq0bHZ8zcMlnSp5L0T0aXVKI943gIgYMvEXWIhWyTtXFgrnt1Wk0oAUisvCYaLC3YhaBZt1Anw== 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=SRBL9Hj4FaW4VfFzhKJk0IoidMKl7iNIeZN9GRd362Y=; b=ZoEQPvjT/AezEezWYAEj+AqEUqcLa/yZdrF0Pi+3KKZQrzsNIYxXJw28KCHoM9sRkeWv4DxyQAyhcKFmZzscA3pE3jDNpcj+XPNvO+oL99Akkro9JzhyH5ZRaXNLnKSWxqwKWrLWUdAve4vTODK6wSDQ+iXUo8Vr6IXNNLlkcJ4= Received: from PH8PR02CA0029.namprd02.prod.outlook.com (2603:10b6:510:2da::27) by CH0PR12MB8551.namprd12.prod.outlook.com (2603:10b6:610:186::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:21 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::8b) by PH8PR02CA0029.outlook.office365.com (2603:10b6:510:2da::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:20 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:18 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 04/56] x86/bugs: Reset spectre_v1 mitigations Date: Mon, 13 Oct 2025 09:33:52 -0500 Message-ID: <20251013143444.3999-5-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|CH0PR12MB8551:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e730985-59a5-4be6-021f-08de0a65bc63 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?iF7p5F4zUMhRB92uiCWeNGz4uR3pVJ/6MBSKtdvFOMpQ8cc0SUzFQ43fLIt7?= =?us-ascii?Q?p5uDhBbgnucbKGz8RZoZZDBjRIfDh1UzKSbAA/SoaVaCGr9+8jhtXO3nV60D?= =?us-ascii?Q?RMmfbxLQsx+GNFr9dhYqgJNIO0IMBs6xq74kQT82FJWfdTFe8OrVj1DtkBRG?= =?us-ascii?Q?gynFEsnL4b1ePFjYstQfBPFFFMCYqkju2dVwENwGR4QHDbf6/3UhB4PEo3dL?= =?us-ascii?Q?bgUGWpkQGZzlC88O5YrmN/flr/62ND3DqGAUBnCP4TP9oF8iFY92xo+TPd3y?= =?us-ascii?Q?fq86DFPL1D+FcTEt62ZpGy/u2P1Toc1g2K0l/1RG0x68bf7+2cap1pH4KzMM?= =?us-ascii?Q?k8KE9adK9vfmxnBsPbEiTlBfJHvu2XfE+p4Xm/GsZQLTHd94Bq0bTcYwk4yY?= =?us-ascii?Q?gyJuTOHfo9JmWYnALki3PE0F2Ar5GkwWFRizd9zRwzRGaCOVAE1rZkN7ZIyZ?= =?us-ascii?Q?PSaq4GYZ+nrWmvsm+DwoULyiwQLq1lte5Bh6q4R6PFDOVvg7tEttqU06kMMl?= =?us-ascii?Q?1AjksTF0KMlhIwbrydvC9zrOMvzRKRUgyqUHTqpbA6Cj6+tIJbNixCgOATxB?= =?us-ascii?Q?vVYPdnkHLVgbnw9ObUCgMUkK8kh9Y+aDtFP0Qc/gM+VGXpdtXsSK/nKnl6CX?= =?us-ascii?Q?yVHheeDCCamyTpqdm+UEqsCYWAMI1fgB/9Dhux8ZnodKm73pT4KOeg8cFG8H?= =?us-ascii?Q?6x3ERKURffzmVId8N3s3wOg7NW3zLmovbfOcZ4rbp0GGqtWWJOFeIfoNGXQx?= =?us-ascii?Q?vBi8oiQmPZ/dcTAyerE3fe0or+4fid/1xbIfHoYNkLky2NrNj0ooQ9BmXGs7?= =?us-ascii?Q?9m/wpz1H7r5bQRY2TZ627iDL+DFZqAYQ0ZynyUIgfyLrKjiKwfszq+IGArp/?= =?us-ascii?Q?edzZ/j6HaxgyKKiT51Z4VYRga2oq0rORJhqKawrQ91qegZ/CELiE8gtf3fiz?= =?us-ascii?Q?u6A9d49Uu2pkoNvRmbiFIx+Zc+3szwNcixmcWu9I8lW8FoqkCgapJe3sr1Ms?= =?us-ascii?Q?+T1LrpqIhoxIK3VeqUIxMrxyZGiUerRIMI9Z74k/MC5BXhpsi1EK2y7V05zC?= =?us-ascii?Q?E9FZ0eNsf+8LWlyF5kywZ3rrWLnifUvGH8Nn7rDsoLOn76nROnUh2dHkqjqP?= =?us-ascii?Q?QF+MIfBDLGGKQqwv32gweydae4Yjey4OpGeIncM/O31OKswrGegWmVqlo7gL?= =?us-ascii?Q?NXQSuhaMNb9ziwGTRP1S4ScT009jVbBcvMq78Xmdz0Miyub3e/sTvMJ3e6Zf?= =?us-ascii?Q?px3HgfSnkdRhzLqikw7qlOnYOBscCdK85jps//1Hpffia/iswYzxoPK0pSOD?= =?us-ascii?Q?zHQjwNU9ahvAFJcHtWUwFCIntpoXzbDXEoD/j4HDIi2qSmWcA5atos44nj9/?= =?us-ascii?Q?fY8pyfGZ62S6CebrJjjrLUtw0jprtFsp3u5ON0URyoxTWZbjqPXvhe93Fa1d?= =?us-ascii?Q?+fg0ivqPVMNgXR5Bm7fvEYolI0GU6BjF1OComZ1FZpoCeBN8OqoQ7RoAlLQT?= =?us-ascii?Q?LiCPepENIlBj7qV1Y2uU5Ist8dXidi9H3CU9bzyNpP0finZV/efy50y+J0cN?= =?us-ascii?Q?8YVbvjilV61xDA+gLhs=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:20.1099 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e730985-59a5-4be6-021f-08de0a65bc63 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8551 Content-Type: text/plain; charset="utf-8" Add function to reset spectre_v1 mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/include/asm/bugs.h | 1 + arch/x86/kernel/cpu/bugs.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/x86/include/asm/bugs.h b/arch/x86/include/asm/bugs.h index f25ca2d709d4..e43b9412645e 100644 --- a/arch/x86/include/asm/bugs.h +++ b/arch/x86/include/asm/bugs.h @@ -11,5 +11,6 @@ static inline int ppro_with_ram_bug(void) { return 0; } #endif =20 extern void cpu_bugs_smt_update(void); +void arch_cpu_reset_mitigations(void); =20 #endif /* _ASM_X86_BUGS_H */ diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 6a526ae1fe99..9d5c6a3e50e1 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -46,6 +46,8 @@ * may want to change based on other choices * made. This function is optional. * _apply_mitigation() -- Enable the selected mitigation. + * _reset_mitigation() -- Undo's the apply_mitigation step, this i= s used + * with runtime mitigation patching. * * The compile-time mitigation in all cases should be AUTO. An explicit * command-line option can override AUTO. If no such option is @@ -1247,6 +1249,15 @@ static void __init spectre_v1_apply_mitigation(void) pr_info("%s\n", spectre_v1_strings[spectre_v1_mitigation]); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void spectre_v1_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_FENCE_SWAPGS_USER); + setup_clear_cpu_cap(X86_FEATURE_FENCE_SWAPGS_KERNEL); + spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_AUTO; +} +#endif + static int __init nospectre_v1_cmdline(char *str) { spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; @@ -3794,3 +3805,10 @@ void __warn_thunk(void) { WARN_ONCE(1, "Unpatched return thunk in use. This should not happen!\n"); } + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void arch_cpu_reset_mitigations(void) +{ + spectre_v1_reset_mitigation(); +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010022.outbound.protection.outlook.com [40.93.198.22]) (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 CA9F826E6F6 for ; Mon, 13 Oct 2025 14:35:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366125; cv=fail; b=AHj9TDW3vivkJk9MQKJxDgUvhqhYuLLmbE+ZBsu/ftB8jF0M5uJqs21hSBIzNne4arPks9P8K4Aff+7O260XR2+kOx8614oBwXZL6FbGZtT8l4a09s/L8ql3Y0alfOU4tn5e9G/rOqe0nZMpYg1syANrxvQsgR6zMP0XxNes30s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366125; c=relaxed/simple; bh=1nnNB79xOxDWbpVNngLHrcdy1zdGNy3DMBjB/J0T8Q8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kcKe2Msbx1sP98MxdxuhEit+MWNLvI9CVBw0DHDR+DWSHR5+fCiGm5pV+J+rfbIRXAWmTpIP3ZwBQIf6uVGKiHz5MrPVAXn30CXSc3SmhpsTvKcByprZ8xt3EXcqDL5yS4MW3SM6KWqDWmQK7k6outnOn2XFhaqnXSd6pBiTVZ0= 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=GIowmWj7; arc=fail smtp.client-ip=40.93.198.22 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="GIowmWj7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vEkkkGXk/iZVDUiikCuYF9xubpQ8Bt+0v7+k3cEqFVPvSiVEB89+4c329RG99LsOoI6QbdylQ113MZnxi26magt8nQWTpUyLQQAZgeVGY3gPFPLJVjRYSyq/oCkq6zLDCojJ1UCysuvD46ysv174Io9SwJBYUIQkXiAEmXRA4bAmKLlB8ZXv/bNbds3TDk0ChnpAk35veOnKJyNoq061zx5RTIGDKclmFdW70pvEclliWzsVXOO9FmghiZyZEvhJ3BmUyWUBjy7SoQlepXFHStF3ZuEd8oamGrYV0ik2ai8J1E1vdEW5YM/8Ey8R6GNslCoQx+Ij2yezwfwzDfahaQ== 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=WxWbTq8BB022Iq+WPAzr6HIcvWRzdT1IoOEgCcruR1M=; b=soyqLQbzfrOkpr73lmbHfFj2ebwM3f0Y3lDR3o2EttZy216A1np+u7GFtxTIaqK5z/PKxMFI0XUDavXEnSEaOppDP41kf8xoCV6Nr0NJKKCZpIrWZ4/tdSKbWVXLv0xpxYl9tcYT7YEjU+2ojyjQFs7JJWtEL8HDYqDjEi2+e2TQU5sVs1WvRi9duFnwsTwHnMDIrwSmmWYJzl+tBC/48tVWRyJ5tjl0ZHUZWlXa9GTDo2X5eCF6JNAW/W7l6hKzjpUH7jLkLwT6y9wF61VvUEHimqh1WOTNLV6WRueZStFsq01p7VS3riOmC2pSi+oOTUXPLkLhnSnc4J7G5oGJXA== 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=WxWbTq8BB022Iq+WPAzr6HIcvWRzdT1IoOEgCcruR1M=; b=GIowmWj7z1Jak9tH+gPrD+qaELUjtb2xL4+CBYPIh1PhqOQfaRMXMWhM7NGHsyLLjhqrwRGIXGkoX+iTWDkU020Xs3HP+aNdaFUk0VMlopNXiKD1oWDCSpLI10JSgMSco1Jx49zPTt1X46AnCxxGml/gFYRMLcQuGyZPtzZ1HwE= Received: from SA1P222CA0116.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::20) by BL3PR12MB6402.namprd12.prod.outlook.com (2603:10b6:208:3b2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:20 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::fc) by SA1P222CA0116.outlook.office365.com (2603:10b6:806:3c5::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:20 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:19 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 05/56] x86/bugs: Reset spectre_v2 mitigations Date: Mon, 13 Oct 2025 09:33:53 -0500 Message-ID: <20251013143444.3999-6-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|BL3PR12MB6402:EE_ X-MS-Office365-Filtering-Correlation-Id: f393a5c7-f586-41bd-8fa6-08de0a65bcb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ntmIK5VNrCZPXG4F1WniqG97zI3LECdUwqPGpQVLq4Pt0ZRyeB4fzl0ul3/5?= =?us-ascii?Q?kVG1GK2LQqLOguhtl71YRiENnp0DnwWHCwaDv1K5x0T4s8nB4LU636AAfii+?= =?us-ascii?Q?kkC+J7+smklzI1evoY/UUll+nr8/wRxcbU1XRRQ5T3nDt7JrJgDSfDc82DZ4?= =?us-ascii?Q?aHuzgRY0zm8En0a39XaJmA9qPEHNtuRxrB6Sz380Wnsrk6ciyXeodvJHZQIG?= =?us-ascii?Q?Gta7bALCo+KSzDB0v2vVjAtrU44/N9TH9nhoN0/XpolrXlQiUydKQarBNdU+?= =?us-ascii?Q?mhNKp6PfZSxPO9a/i26SGJrXYI2AWEZnl0zs1Lv80ExyaUJif9Wn/aDWvgo9?= =?us-ascii?Q?yvYnn924lg80xZh4IX8UgAsq1QZ0Be3wYdRZRbxi20Za5+wbxhq8ii0M+pMK?= =?us-ascii?Q?mz7kEIHMnubV88or8UFsqZwM5xkx+zgTnbomwqAmnFxwxO3ObiphyDuH6Ssp?= =?us-ascii?Q?9H+fBW4hYQBi3Nfasd2zKn6zB308PTfAB7zAHlfcacXoviqB47K7R+Cyad/y?= =?us-ascii?Q?vOhQzfRiYClZpzr9EC2H/n0tQlnv+InIIiv7ahfNVzxQQnnZVXKELMde/xLe?= =?us-ascii?Q?8lsYrDakGrj6H1QGDLZPI+m2K9ptz/663gR5vSQiK8+pd4nQlKLOTjO6iI1R?= =?us-ascii?Q?G/pkeCkIDv6sg0XayhJwrUAhibMBdHjI0HmguxFAMuxGBAzlRsit7Zg7LjXB?= =?us-ascii?Q?yA3iy1FbMi45z2jmSXg8gYySn0HxOXLxstK7/zafWC8qhYcgMnkXhHMgn5BP?= =?us-ascii?Q?IGGzAsJJB9TZOKffrRTLkIrsJLkEx0c80fQ2k3ZOqqt4ay1LH8tBPgsgTIi2?= =?us-ascii?Q?n8W2m5yQh0DUnYsdQspMPhM5MFKjnerMvPZby1LGOi1GAGyQwTeWNPDP1Wda?= =?us-ascii?Q?kTLUY5yzdiCpD2aNsg/khL8O+jeQ0YJpbzdHO+RDGh8QzwooyLxCEKrg9F4m?= =?us-ascii?Q?cHHlnglligiI1WMidWUg3QW4kk9/A/mTOdAbihNlGxvhRhQmnHamzB/ZfPSE?= =?us-ascii?Q?yyD2wr86075oTwTZWQicCJOaaSoCB5PYxy88cnxBhpLHZ9itsbQyMR4neNJS?= =?us-ascii?Q?JoKldsCVxFmg00w8XJ07n7kfDZcp0riP3TCw7qHaoIwggrBvVnfkT6LqcTTc?= =?us-ascii?Q?HOFVUxR2kJZkuShFteXIuhkMjcuP7KHyT14uJ9quEIK3ide3toG0PYOh1vo/?= =?us-ascii?Q?KDVwVdBCHgTaROkWEpq68FcDX/IuXs5DNv8hcvuhEnqckdpsN/r9cJiQFyNx?= =?us-ascii?Q?W0ZuBRSNHPEsnZepICG7b+ezYFYui3WOWg6qso7uZw/YJkr+g3527OBfSfPS?= =?us-ascii?Q?6X+VMSVH5ef6z3BdpSsRIui+SY9YwJWnMy0lgNE1q3N1H2xMCoy9o4TUe6Mc?= =?us-ascii?Q?FTxVvSiq1M5ZG4+6xREs+d1f5Eiod2c5AhEjqkE8B36JrhIvnqTed4kaq5XN?= =?us-ascii?Q?lnJvmuaQ+Tr939wWpZyKEO4y7OHIvHyKSxXtaJixe76LMuT2yqUn8ug7hKaP?= =?us-ascii?Q?95aEmda5PaIQbeft9SnI17SOIdYJhfAnRr0TDwIHhNExXNaRkQ5fWpMgVF3z?= =?us-ascii?Q?E2f06tL23eAEdsFWrlM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:20.6707 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f393a5c7-f586-41bd-8fa6-08de0a65bcb7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6402 Content-Type: text/plain; charset="utf-8" Add function to reset spectre_v2 mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 9d5c6a3e50e1..0430635bb17d 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2477,6 +2477,24 @@ static void __init spectre_v2_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void spectre_v2_reset_mitigation(void) +{ + x86_spec_ctrl_base &=3D ~SPEC_CTRL_IBRS; + x86_spec_ctrl_base &=3D ~SPEC_CTRL_RRSBA_DIS_S; + rrsba_disabled =3D false; + setup_clear_cpu_cap(X86_FEATURE_KERNEL_IBRS); + setup_clear_cpu_cap(X86_FEATURE_RETPOLINE_LFENCE); + setup_clear_cpu_cap(X86_FEATURE_RETPOLINE); + setup_clear_cpu_cap(X86_FEATURE_RSB_CTXSW); + setup_clear_cpu_cap(X86_FEATURE_USE_IBPB_FW); + spectre_v2_enabled =3D SPECTRE_V2_NONE; + nospectre_v2 =3D false; + spectre_v2_cmd =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ? + SPECTRE_V2_CMD_AUTO : SPECTRE_V2_CMD_NONE; +} +#endif + static void update_stibp_msr(void * __unused) { u64 val =3D spec_ctrl_current() | (x86_spec_ctrl_base & SPEC_CTRL_STIBP); @@ -3810,5 +3828,6 @@ void __warn_thunk(void) void arch_cpu_reset_mitigations(void) { spectre_v1_reset_mitigation(); + spectre_v2_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010064.outbound.protection.outlook.com [52.101.85.64]) (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 E931C2F9DB7 for ; Mon, 13 Oct 2025 14:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366128; cv=fail; b=OAu2wYIwtE+1gTXMUkmizp18vgVVPAl2GCYFwB7in1nl5oJ9jn2OotjARdTZ63XyEJ5pgI+Ud0f9p9B6VFF7x9/ZIPzXKCyOTpYZD0cVjJtNq2KyNfmWoFNKD9nXSxYU0cx44JnNOjrK4BFmiz6LJsLeNbmoB+pbnslI5N6DpP0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366128; c=relaxed/simple; bh=/BhkFKuMt6oYbabUBkh6nRPyLTnaph1qRomEz2KqIgY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CAAd9LxqCvsxIecmkhgEIbjMKLiqDXuiM4EJoGUjr4ZkrC3iEdcA4nanI+dJjD+qd2Z+XmJ5j8pyQz9hZj47BPEOAhCN94bP6GPkSkaFQ2NNM/P2sCHi8mq67mWU8fbHDG6ilYcQ2NY83bVWl3ArU1TVrgq9TtoPDoX+f8ARoh8= 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=cj4bdiWG; arc=fail smtp.client-ip=52.101.85.64 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="cj4bdiWG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GH8Q1TQhtSz1foizQW4FF0uRlWZKciKrYW84LsnB+YyY/Ud0n2pRl7Yfc9FKUOvgNf7n4l/QoOXh9M78uxe8vT2/1TjlSMN8uQeRm1USwMkhYHmEEVjvsTQHQvrC0WbJjEzFz/P+UhX81zlwbyBJpBaIsskr8sS6cmcaAnpd6REc2tf7ZmjDzoQeJAxeq26NaCfKaOE0na/iy6vKhLer3dkjemqK1OOTQxUoydbdFqAKH2akhZTgbfNQQugl4+NoOPoMylaMHOIAhZm8/WY6l6XC+Lpls801ltENWqkTpoNJJxUZYHe6eH0wC2reY+qHr0k/9wLLvaftWJompF/qew== 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=vKa7I24jcV66uULwkL3v+iLVSR43sCuaRKQ1YxEOxoA=; b=hdPccSr16e7+Th/RMViFF0rlB0p/VLiZpznpEODI9h1oEPx4i3vLOixs0X04C7KDxopqozdmSAtAskzEW9GzqoT+d20BFlgRmUeTnP0JU9CpTlB/bxi/5k/9S4GCCpGEYi8GsiazJFlObBLJwFELbNECeYuObP9JOJ4WI5hSLExnqXMgozc9RsJRnmeOsbC2bvrlNOR07mnzXtoagzGL2pBpv2qQbU7NSnsmyUPsjv/zDfUl/y6xsaab+v9W2rH97yhBGEF025T21LzYSuVWfAiBH5LLmEZcv0q0jmjgPACvEVmNJ6A42hWVOlWXZln7j0ay4rI7VVYwM6jNZ9xMkg== 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=vKa7I24jcV66uULwkL3v+iLVSR43sCuaRKQ1YxEOxoA=; b=cj4bdiWGe8jlK7g0PKeFiXXkWtmrCSGTLTn34vG8lhkX7QwbG3pYJGPdyNSLOZjQTyuMUy73KPrrdqjUmhSqkTfqwfWaX59MXHeLFa5eYPwxChdC1mMZitHZHNMU+KfiEUQLFSo/2cAigcJRYhObQDRmq+gCu4h1iH6nEBxf6ig= Received: from SA1P222CA0119.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::18) by LV3PR12MB9355.namprd12.prod.outlook.com (2603:10b6:408:216::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:22 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::ee) by SA1P222CA0119.outlook.office365.com (2603:10b6:806:3c5::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:21 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:20 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 06/56] x86/bugs: Reset retbleed mitigations Date: Mon, 13 Oct 2025 09:33:54 -0500 Message-ID: <20251013143444.3999-7-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|LV3PR12MB9355:EE_ X-MS-Office365-Filtering-Correlation-Id: b1b0c045-2af7-459e-dab6-08de0a65bd5a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9NElyobDOCcBxN5TnF8ybxdADRthxahOTZD+hjs9iPdaGI69DRoW5z1yHvSU?= =?us-ascii?Q?i3racsjgwNFN8wQh8/utbLP/peM292kIGkyfGFjglw8rNONcp6My/m18kMd1?= =?us-ascii?Q?MWr/LSoDCJ2VT3p2DIGExDaRh4W1aO7ItY8PGwCPFIBc874OQ9hkyummJx0H?= =?us-ascii?Q?lcs3tSXCh/HaxguAw1MGIMGEfpqn77FDS+dPntJG5ihJ8X6quNUioHFGWLJe?= =?us-ascii?Q?tNC4f7fkV1f6JG5C0WGA08PwOHMRYmtzlEIVIS62i6qj6TXfo5esXeMtQdmH?= =?us-ascii?Q?zFtLlLVpW4Vy8grq/ip3IH8ysM/xkPZQncum5XbM17EAoj3wnKCricPs6UD8?= =?us-ascii?Q?1BMjkLpoaKktqzNBCDNNrZGbn4DZCLBiH9gbPWVKwEMsZ8imLoFbAA22SM+t?= =?us-ascii?Q?gEGxkLAyRu5Y1PDh2Scx6783ei+0MPusa8Z2wYzatjtMqhflVqFot++6yBvC?= =?us-ascii?Q?ks5Ix1ZdNs7H5Bu8lz6o4i8yZJoBZC9oJOv67rNv4DlR78GEMOTqYGo4ZuCZ?= =?us-ascii?Q?LRPmz41b26KeeeQWw93LQL2Oy3RMrkDPtI5PDFrwn/naNeTvVMahAAurXb76?= =?us-ascii?Q?QD5TpSw89l/5q57b8HqfqAbB1aBVqU5bUZtypzPwk223T/6gXguQ3iYPosKo?= =?us-ascii?Q?47CHOpKv67SVqp333EArezNYlILKAukn75o7z0SCyNHElwwT+YH07XvW1+Yf?= =?us-ascii?Q?D+ieK1z+bxTZJ9MOFQ/AciOPlGMrzD5E6Hc/NKf0IkGToZ+MHNX3wravGB1X?= =?us-ascii?Q?VD7wC28kaxXViyyOpGaDII6HstVDpGIUoUEccgxXO5ZqVypsWpop7N4jEKme?= =?us-ascii?Q?EROWpg8poEDSn9Iy8oA69PlC+Gg7tLvHfmaLH0w3fcP1c38g168BBv92qvtj?= =?us-ascii?Q?JmydgaMi6YtM3yNr0TfQKe70LgPPJ10Dn6jLeJFFgXPP0B5hVP1JdVBk3wbE?= =?us-ascii?Q?DUwBoYTZD+fa1nTinh6YwzBKKfrb8jhjnkmL3hHmrsHh/bVXLcXiZXAhOKeG?= =?us-ascii?Q?3ed7iJqYwBx+AsWVOuf6lmaPcUKMaag41d7MvdFLTZVL8ui40qkw9/2Xvj8F?= =?us-ascii?Q?vmboKaThk6wx9PEB6BHLBjahI5KM/AM8Yz9ilN73ztPf3jCvxMprbcTDnLRe?= =?us-ascii?Q?9v+8raLFd73vifc8VOCz/15k593CQW9qVXB924cxgrvVdHV/EX3HKhuuQmFE?= =?us-ascii?Q?wACa/XVGDwY7zVo/g77WcrzSr+Qq8xm8gckMLO3VhErYRCMK0RRj/G269US4?= =?us-ascii?Q?dgLoMozCLX+7b8s/CJxgWbZWUqUq5hcqtX48fNUFobElIiaufWAoOcOZQhR6?= =?us-ascii?Q?gLy2sd/eTEdXF+eUsoOg8Rh5I7YdRqmr4tOXRaR7EcTakNUn3ihask0aNF0V?= =?us-ascii?Q?iPJRmNzgcS9Vh6CVAYyYx9cP3Se42HptzaJXgL/iduHpC92KxduKeUugkKQv?= =?us-ascii?Q?GeF9OoK8FIxvPpzUjxyGiDVx64I2tK4WZLjO9pXlN46jWopvaP2A+5alHC7p?= =?us-ascii?Q?fiYw+DjLtDrVr2Cy6OyRkGYZRuf0cRvrPDbf2BzUmiDW8cc3oGyQbGIt8FD5?= =?us-ascii?Q?SvWApgyLJ2OuX1vlSas=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:21.7401 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b1b0c045-2af7-459e-dab6-08de0a65bd5a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9355 Content-Type: text/plain; charset="utf-8" Add function to reset retbleed mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 0430635bb17d..1f56ccb5f641 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1542,6 +1542,20 @@ static void __init retbleed_apply_mitigation(void) cpu_smt_disable(false); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void retbleed_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_RETHUNK); + setup_clear_cpu_cap(X86_FEATURE_UNRET); + setup_clear_cpu_cap(X86_FEATURE_ENTRY_IBPB); + setup_clear_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT); + setup_clear_cpu_cap(X86_FEATURE_CALL_DEPTH); + x86_return_thunk =3D __x86_return_thunk; + retbleed_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_RETBLEED) ? + RETBLEED_MITIGATION_AUTO : RETBLEED_MITIGATION_NONE; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) "ITS: " fmt =20 @@ -3829,5 +3843,6 @@ void arch_cpu_reset_mitigations(void) { spectre_v1_reset_mitigation(); spectre_v2_reset_mitigation(); + retbleed_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012066.outbound.protection.outlook.com [40.107.200.66]) (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 D8E75277CA4 for ; Mon, 13 Oct 2025 14:35:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366126; cv=fail; b=fc0mRopc+exCy3W2MOBZRb6YlXVtFszAtBqnPYXQ+oUzZZI75QvEMva4yWFeQxqrBvpddb/rQNzqwxI+BBZc67so14ey39pQnfyw34vgjLT4ecYFAhx9qHZKKRYxd2wO3of+RN1xB7Lp8UOdAu5cOlWr8LyvfUgXLbTMtlbZVK0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366126; c=relaxed/simple; bh=6W5cfXXcKxUUzEoyp+YnlFaFfNsbxMNuDCKAeWJL04c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=atkWV3t9bTaJcSnFgz9LNw4Q/oJvUg7K+kK3uoi0lU01rD0qXXuqY3QSsHy3Z28XbAfPYuBoYJ+46sZ+WZXs0XpfpwzulUIBNkEKzqGEPN2b61kYz4PvJcWog7Rq8KsnsnO8V7p/P99rxhOTvzIIDAmNXshQh3ZwioUAwgD5/f4= 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=kwrwRBvj; arc=fail smtp.client-ip=40.107.200.66 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="kwrwRBvj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Otgugg8tpSshNAJn08wwp7dX6Wp6zsWTITziJIsvp7GUqoZe3xS6JfaXpNg04xEMgDA+WNeaCE33J7Ce9NDAPcZhCqbwbuD5OmboUIMu57z5e6QONVGioAxhwC++N9kq9eCuV7c5OAs7+T8u/mGt6aU/Q2+swMWpHTz9evEbp/itVy5ke0vH00I3aGa6xDGa6URJ2uqrR5CvFZbiZZhC4W/f1Hgx8Nokel2XohjGlsQTTixKX2anLGoqXYWIYUs5Mc2rhVKZW89y4fBybuQFzGt0cDzpK4uawX8xxLc8xhqtBgODDAZGQ5UPCoLWkE+5xDget1WyxgNKfZeJ+Pp8dQ== 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=ka8rhuthJsOtNPdGiRo/OMLZ4bF/UpJWco6Ay/JGOgA=; b=ts9bqQHHbDhhpZuJzOqxOkWBm/VL4zskx6BQLLuiMztFsKR7QcQ4LSvxjhfLCZ0KMNofHlfoAnXx6u0dETQKIfxGunxUDPkl2TLpVl0lh+5Hss9wNXs1IGgpDrS3ZrjIUZ0qTWP4WRuwKwXGkUphFKus8W7j893ki3wXUhrCJqu0P9H/Os5B5New0XZmQSH3cn9KMZ3p4oAsMJ76su9A7O+QJqR2cMJ66sTYFVJ8KwqUOTu8Cgsycqz7jtwj09HUBy7/SBln9UUzpWGifeKNWXdWiAMxGYDi1FfN+QQDBmXdB0hwoZgk0mFKYLfvk/pv/jHbBDvtMTrCcERBYR2qkQ== 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=ka8rhuthJsOtNPdGiRo/OMLZ4bF/UpJWco6Ay/JGOgA=; b=kwrwRBvjaOjBllvce7ZtWcjD8CKgPWky2TepPI7aVUUVn7bE755RyYkc7jOa2qgUDcQirsYHQWQIOkd7oiBpahE50n86qCQHVuYB2DX+tSRTxoqv2L4XKo4KteseewJn4A2ZTtAOu9GVGCTsdDMJhn1q8B6PQQLFACIpP/jzDQg= Received: from SA1P222CA0124.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::12) by DS2PR12MB9822.namprd12.prod.outlook.com (2603:10b6:8:2ba::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:22 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::5b) by SA1P222CA0124.outlook.office365.com (2603:10b6:806:3c5::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:22 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:21 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 07/56] x86/bugs: Reset spectre_v2_user mitigations Date: Mon, 13 Oct 2025 09:33:55 -0500 Message-ID: <20251013143444.3999-8-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|DS2PR12MB9822:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f9c9796-2383-4816-9aa4-08de0a65bdc4 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?0vSVwov+jFS9ZE18nE64ZP4UqyUzB1r9B/YGkk8H6OKKOdKZpraOggaEOOby?= =?us-ascii?Q?xkvIgKRVRCdMoTXFSISJoGtgnk4oiqE3/UCRSZYy+XozGOWk540I4iP40EwC?= =?us-ascii?Q?uTQ8C3yUcXS/1plZyomXBeoZQSJsFTSihpfLrq38ei2lmov1NjRGD4vWJilL?= =?us-ascii?Q?oNrl8QiXfzwh1EN1CBQwn4v4PnoGhRkjPx3jhgEEs5VFmsA4XPsHNK1H0vJj?= =?us-ascii?Q?aXwHQmcvPeuuiNEVE3eoKXDrv5K/yDFxxR4HwTx4GaYBTGZHoIivBik6pcrf?= =?us-ascii?Q?Pfm1tJRTKOKPj3pjGW73u2L6FbgM4dc5uAUj4fzg8aMMQIW/COn2ut1kMDyz?= =?us-ascii?Q?JRxMWuTsi3J6RZ5iXpfetJAa4PPdrLgrQuBGeReGZs9PsZYZSJMcQwpfHtUk?= =?us-ascii?Q?39im0u6ldZp0vYdNAKKV5X15f1XfHKQtC8al+lc4zA/0zHGy1pu5Hd2xNfa2?= =?us-ascii?Q?CJ955zu61ZPx30HHg9gzeYY8S5sIE3p/kuBv3VW7mCJzaIu0Ut+8LQoRM5Pv?= =?us-ascii?Q?G9y2+BugKTR0GBBvljzTIRewM3p/mDbJwlRuSatd5JiaCHjRb40g/RRszRZ5?= =?us-ascii?Q?nQ9J+I8hMNlOY2UEql8W3PjnD28I6xo0tT8sppkRKzy2HcTZFNLBdkR5e2fm?= =?us-ascii?Q?n+0Fteicrxhqx+3RSLmOMizFmLA6EAaw75nof4nBSxILvI6/PGs6i8YCJUCK?= =?us-ascii?Q?7NwrXrsN1UYhFFhzSYzOJhlsIxbcU/f/BoNcokwUxLiHxKmDGoR5QnH7zCPS?= =?us-ascii?Q?7abHrAL86GNnHX+KMxaWwdAlxAGKtUiAdH/xAZNRWR7aYVfC8vxSXvfL8aBQ?= =?us-ascii?Q?M1agzPaM0j9wKS1RfLhfN74nyE+ty20N8EEmiakCsBNokm2PdGl1ZnVDogia?= =?us-ascii?Q?0RVktFk06vqV/CKK1letZxicQ0tsAehhsN6n6GmhGoK0K2sJC/ntfN5duCdP?= =?us-ascii?Q?IIGzDGcDi8/MQv3zbINYN82cnAvQA0mQsT3PlIolTQ5BgsXTgdFreYdCU3Xq?= =?us-ascii?Q?230s5zxpzPvuxUFwfOprKzf4SbhhIjrdVgtF6IMt3FBZfaB+uZKc9z3weIAJ?= =?us-ascii?Q?BrENTKhFzhycj7/1EF3WelW31TRmsOpNpShhkLRCv8E22Rzl3V9RJcMbvKRh?= =?us-ascii?Q?3skl57Huco/rh6nEuCMLwFD9o5kNnQx59QtmnnCMdWiDuUoqjtWETP7yGdFx?= =?us-ascii?Q?U+pazvrS1t4QAL7SDBWHpGQ7ZF46oATx3NDJZxdR0GjurtoeSHlY1AU6k478?= =?us-ascii?Q?E7jmTdRPPJSUpyWANMf5vFc50+4uRnu2RGl+rUmfwKOfT+28yFOrfEfo+GO4?= =?us-ascii?Q?+Juol8kLffiHnMSJSRqrbWOrDBGHHrKHVehlq37S48C+87WVEmrxD0xjhBV/?= =?us-ascii?Q?BfAVYMijUtJUe3bTavyDVaYBuLSdevBWQy44WW3ioeJhctEmZrkS6fZQ3Ph4?= =?us-ascii?Q?qAqy/bfKMphxhK+Rqay5DxuvvILWigK9Fe/sAjxOgqhEudjNNqZ9FRJTWxaj?= =?us-ascii?Q?dPWpG5zv4NG069zl5lWO3XBLfvyT0B/jP7IAwZU53gNK0Ql8osKvTJKg8pzU?= =?us-ascii?Q?rvUoxvuVakHgiCPipns=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:22.4337 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f9c9796-2383-4816-9aa4-08de0a65bdc4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9822 Content-Type: text/plain; charset="utf-8" Add function to reset spectre_v2_user mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 1f56ccb5f641..4ca46f58e384 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2056,6 +2056,18 @@ static void __init spectre_v2_user_apply_mitigation(= void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void spectre_v2_user_reset_mitigation(void) +{ + static_branch_disable(&switch_vcpu_ibpb); + static_branch_disable(&switch_mm_always_ibpb); + static_branch_disable(&switch_mm_cond_ibpb); + spectre_v2_user_stibp =3D SPECTRE_V2_USER_NONE; + spectre_v2_user_ibpb =3D SPECTRE_V2_USER_NONE; + spectre_v2_user_cmd =3D SPECTRE_V2_USER_CMD_AUTO; +} +#endif + static const char * const spectre_v2_strings[] =3D { [SPECTRE_V2_NONE] =3D "Vulnerable", [SPECTRE_V2_RETPOLINE] =3D "Mitigation: Retpolines", @@ -3844,5 +3856,6 @@ void arch_cpu_reset_mitigations(void) spectre_v1_reset_mitigation(); spectre_v2_reset_mitigation(); retbleed_reset_mitigation(); + spectre_v2_user_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012058.outbound.protection.outlook.com [40.93.195.58]) (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 4BD2E7083C for ; Mon, 13 Oct 2025 14:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; cv=fail; b=IumyCMWWEjHAIGaH+WvMMOxHE7+GUTZeMhKFKG6/KoJVgYo/DJ2WeyJhrlFRN0l8hz43mCGTRuu1BQz2ob9vlK+BqLaDLDTHV3e2FWdzkyD56uW7bX9mMZpubA8bJ3JRMVoLm/NwOGnF5CKmZHSsJ2tVyKyQe6MK3eNZx6fxin4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; c=relaxed/simple; bh=cgdDGsFGt936HtydQonq7k9dT0YqIiUi5ZqRlJBZzww=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=M9B+OqihY5UbMia0HqMZIS85J954tqjg5LMGanaZcQIGVFPYeekpDK1ukzyxP48/OFCnmZJiRD1HCMsjOqSPIn2putpiVQUdeDzsvWSDkbtPoTGgOMJXc8IGDal1PA5i1dSXovhXjOElIzPKKCHduLkLoYZYmb96Y0WQQk6Cwkw= 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=JkZ2D4Tk; arc=fail smtp.client-ip=40.93.195.58 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="JkZ2D4Tk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=be8Rbnt2sw0IEhm3pqHw1ZFUw3Hk0QTgSlHc5E2reWixM9lZ1FrGbFT/K6xrWdKzo6Xvw+qcg+QnxYOqeEKSKmXx4k9mBK2zmXGJfpeZ2MDYaJQZ+q2yKVGjTSkYqvkO8pCY86LMtiDJbGvVKQ6to20aXY5Zm8NgtR/oF7t4Y4BoicnVIOci1slT9DAjq5L6M3mWcfZofxh2/u1OQu1debP47q3pHDQy33zuDeAp1KCcnc5rEsPmvS8nKR2yprETEa41rK58DLH9TB+NLojGjRZU+A2k/ymV4sFZi+gc28pTSyDG4fmuBSf19Tl28+zXQyLGrr//yHdrQ//LaVqpjQ== 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=11snZfGBiYa/PY6UG823fK3mM7asVpcClI7HuI2G9ok=; b=fyRVaUzDS88dIxb1gacFnm22Qa2/tohTUEmlOowghlF+Xln+w6io8k9yj5f6bvj5okWZ9RM9UWpxUOcptUvXzNCLs3Wdj0pcCZWAONbsSnc/dpuQVDoKUKXJhh8DLqR6zE3rfMHphJ5y5CSOwvHkQoG74Wq1uiOu1he0e9ibp76nVQGy/Y+Y2jRNPPTmmqbMOiKwAOnM/ueYW1djeExl2XMdDb4ZTaSI4+UsnQRBojUO4TzPIm3v8iCvxo87+VA5OB2BxoLg6QtTxSeRdLyBB9qKSS2UY0697+a1IS+/qvtPhro8VkUJ6dygZtPSS4Gl+H7RctGOwnhoMOTyg/DlfA== 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=11snZfGBiYa/PY6UG823fK3mM7asVpcClI7HuI2G9ok=; b=JkZ2D4TkwhM22dzKpx4kjAtKeT47kYAvAFdnj7MQgtq+Bwll7vice3l1qVCRi+ZEYse6GabtBAFYdGpg2n7IwW+ZkQm47XYS4pvG8qoI1F8ng5szG5l+xT+NY55hCGTmlyMqyGKDGi+5gqYaj9HVe3iZFmcy3IW0+StNQtLG5GQ= Received: from PH8PR02CA0026.namprd02.prod.outlook.com (2603:10b6:510:2da::22) by DM4PR12MB5889.namprd12.prod.outlook.com (2603:10b6:8:65::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:24 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::4c) by PH8PR02CA0026.outlook.office365.com (2603:10b6:510:2da::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:23 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:22 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 08/56] x86/bugs: Reset SSB mitigations Date: Mon, 13 Oct 2025 09:33:56 -0500 Message-ID: <20251013143444.3999-9-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|DM4PR12MB5889:EE_ X-MS-Office365-Filtering-Correlation-Id: 567f09a5-14cf-4c4f-f336-08de0a65be6a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?D/Ksy72QndHDpyNAF1UdN9xAUt6qj569xysPYe68cyprl31srSttp1xC8WOZ?= =?us-ascii?Q?fycowzxzTQuRG+MxAXCB5NdURlPcMGgnMlImTP5YYIipMpXooCrNVihxHfUA?= =?us-ascii?Q?Y1B6jNJ9/zDzi/C7YUo8xI9o/EjUMdpkOBu6U7IKndbhZj20vC5feXTXEeI9?= =?us-ascii?Q?zkvZhJJSTeMSEd7B8QIndyAsaKzBpFY4V86U+QIbDLNpnNyjBSb7i9DsI5Tg?= =?us-ascii?Q?HqoEAUYzJrC92V1xdT1qBBlMGDBYTOKYgRCWdz9W498wK70+KcngxI8dPzex?= =?us-ascii?Q?6fYU3UwR+b6c8nOmN2ADqjXgacy0S0SizmQ/flq2U+EWfHRtMjX2LtlvjOgI?= =?us-ascii?Q?V9F7VWonKlYmtDIWefv0Z9H4eJS5p8Hqs7NtrXU09a+LpOx6Ma9+xqNhTRO7?= =?us-ascii?Q?BtScsFRcOzAHfumppP/pGVzPyPj4JBPsiKW3HO3ExvRI1kz+3hq31TpoGUgC?= =?us-ascii?Q?b6zksWKg5w+Nhs2eBZ/gBz3xc97V7qoT86k2exrkp3M3GAzEln126ewPrQEs?= =?us-ascii?Q?EGC2HWwI7EOOz0XituASN7Nl0zFgNll0gN2vpSRalVOAB33JxSdAmg9AzKgR?= =?us-ascii?Q?jBYyHoFvTyX1DGpoRNNW43Uji0xOzwnxzQ6f8yRaxab6M3bkI6gn7PMjNqAV?= =?us-ascii?Q?GOScdX4zhjzay7XWUr4eYv2rtifIf0kiyDJo7N2OLwmuBcJ+zdtB/7L3I8DZ?= =?us-ascii?Q?VIFDhVpRbd0HYK1yF5M9AqgLszJ1FTxnxkCFM4taGxtZRZ99dcaa0avRG5vp?= =?us-ascii?Q?0/UgqUIp4A2N4R8XplqJOvD+kFgFJoAPAGrCf14wlpV8xNM12ujpeDrdn7h0?= =?us-ascii?Q?kg0n90iPog+9P/SMgq0Vtwe7TvZi+wL9mbxoPGflancLuYOuiHHVRpgRbr2o?= =?us-ascii?Q?00M0asVDwttvOs9V892tpRMJfbuTrVDGJpSSDjPbCiKXjgdKuxKApEI0cS1T?= =?us-ascii?Q?eMoa9Ws2sThAE+Y1LrEcWm8mgdJy2zeD7SIV9eCaAHSaUiuFdHsrIJfv+0mk?= =?us-ascii?Q?3O1t7WBfvBCxch6AwyJfbqI09BuciZ8i/gHXcqbjg5ung/nQc7O8F8vD6QDS?= =?us-ascii?Q?nNNxYDtANCkLV4XxeIazA3WAvQqsurD45h9ie7a/O/D59e4miVxu2aGv+6lm?= =?us-ascii?Q?AjxsrlrjlqscVMrSZmsTZTC+73iY991Rs2zYZwoo0gCAJ2SdRdSXoAQ5jNzG?= =?us-ascii?Q?xSpiVjqKKMSCSINfEpyh9QxYrgTMEUfO+/iP/Ona4EWgj6ZipENpYmW73ad6?= =?us-ascii?Q?xgsy1n4tkg8Dtpg7xHspqBqjfJSloVL/qNPAgfUY+9HXqo0Tc/3siUjbc4vo?= =?us-ascii?Q?Obo759r2WlH9/UIm0bnIfLyfeAb0vSPVSdkMjasf1lREp12U8gIqj6PvffVS?= =?us-ascii?Q?WLhzCdME+/LW69HdBGoXdKe28zhQDO5PHbO1Njo7Be+sQeFZRkU/UcnyjfGb?= =?us-ascii?Q?CR12mBkQfHSiGeL84NZ8jjg8ob51hL4Cccej4ygMaMlFxYFJHdTHz7npZNnS?= =?us-ascii?Q?Z7acF1xWiGcTO6yAzSgsRqmK1GqIFmr6+dgLKNaOGHY8YSet4HPz4jg5MLtw?= =?us-ascii?Q?0P/PuRTKNJ0z7GLMAkQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:23.5190 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 567f09a5-14cf-4c4f-f336-08de0a65be6a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5889 Content-Type: text/plain; charset="utf-8" Add function to reset SSB mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 4ca46f58e384..cc7b1b67d22d 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -380,6 +380,16 @@ static void x86_amd_ssb_disable(void) wrmsrq(MSR_AMD64_LS_CFG, msrval); } =20 +static void x86_amd_ssb_enable(void) +{ + u64 msrval =3D x86_amd_ls_cfg_base; + + if (boot_cpu_has(X86_FEATURE_VIRT_SSBD)) + wrmsrl(MSR_AMD64_VIRT_SPEC_CTRL, 0); + else if (boot_cpu_has(X86_FEATURE_LS_CFG_SSBD)) + wrmsrl(MSR_AMD64_LS_CFG, msrval); +} + #undef pr_fmt #define pr_fmt(fmt) "MDS: " fmt =20 @@ -2672,6 +2682,17 @@ static void __init ssb_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void ssb_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_SPEC_STORE_BYPASS_DISABLE); + x86_spec_ctrl_base &=3D ~SPEC_CTRL_SSBD; + nossb =3D false; + ssb_mode =3D IS_ENABLED(CONFIG_MITIGATION_SSB) ? + SPEC_STORE_BYPASS_AUTO : SPEC_STORE_BYPASS_NONE; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) "Speculation prctl: " fmt =20 @@ -2916,6 +2937,8 @@ void x86_spec_ctrl_setup_ap(void) =20 if (ssb_mode =3D=3D SPEC_STORE_BYPASS_DISABLE) x86_amd_ssb_disable(); + else + x86_amd_ssb_enable(); } =20 bool itlb_multihit_kvm_mitigation; @@ -3857,5 +3880,6 @@ void arch_cpu_reset_mitigations(void) spectre_v2_reset_mitigation(); retbleed_reset_mitigation(); spectre_v2_user_reset_mitigation(); + ssb_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013056.outbound.protection.outlook.com [40.107.201.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 EE5CC305E31 for ; Mon, 13 Oct 2025 14:35:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366129; cv=fail; b=IXsk68WtFMSx/vwN95Eeb8e3H7s5tFZplZvrJuMK9JSglFTDNhY6bEWfyfPmzmBknPKEKw0nbUhNVwMpto1HN7J+8cYfBSV8zLTs/HG4TK1jtKXuGWpvE5cEexeNbdRZU8V9WcyGbtL5uJf8maw4OHoq+sJRcvFHrZSQSM4NrzA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366129; c=relaxed/simple; bh=q0YDsa4Xw5cHfosdQRyKHoQyEO+U5RJYcbg3LWYPlpE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VHDJUCur3Q808yIO6hG83X5J/02wek1sX1+FyssoA2oHRzxP+ky4FIHBlxNtFkEWSnn5/ns+fgaupAzRBEh+AxKIUiCB8povtUzJsLo7Ni7U8TR/8v2n4326uir1x+RzPr7R2Q/RYwgC3OShWvzFTzQ84k5hIl62Q/fCwIIBxPc= 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=p5xhqXAS; arc=fail smtp.client-ip=40.107.201.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="p5xhqXAS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OV04pSKx3ElW1c5ZmNY2JGXJPFjC5+ZNZbcHUH2FrdKSlhe8ytMYXxAuR0DltiaP2E3h8sTl42LgMV0DXK9tut6eDfcyxRCPuu7BoTA4MM2zYMPjYKEab0XkGZHDCxfzIJmIrhkoUdW1doki8+AHPqLnAUgSnt5eyfb1FmSc++2+Gzk+m0ct0jnjBd38t6/6age5bS8GZALn9GzZHFHsUGDd9CHiV54gCftU2guN2BMaHYXMyx3q1xgbihWz9nUz8kghQxS0tGXzYXx5WjCLZLwOwc0GYzP1YhBUWa22bkCLhrB9CnOiSeU+iNYwLJALuou67+yYFv99OvN07XLgPg== 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=EZmxJEtKCMHKu2jOKH3R7HOFAWQzB0MgpQentSh/nVM=; b=cKK28ZffzbtKCjSIK5ve47O8gzjGjHS45pk82/4ptCG4Lwt6HqLt5gaDmEf2MC+RF2eqeiq3dRxn9EP9fWUQcqbeOVXtfOY59WtZAiYGF+alST+sfI0Xh2szkQi2GZ/R54ne227HaVl8mVqWOoPZOQq4KRh2F9LE41cjUMuIWpKqkeBFBWJGVhBsfztR5QnBPf3h/ZP1/LVsm5cA9Ql4bgtMeW0F13jBDh2hecncJxf7mloEVM32BwuHUebC9Vf/cF+gNmwpFua6ovgjYw2CBhGbkAC/snWQ/qxFXelFqqbr1zeAVt5CwfBbjdvZPjc8aKAIREgdZe/Ow8P1xSiqDg== 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=EZmxJEtKCMHKu2jOKH3R7HOFAWQzB0MgpQentSh/nVM=; b=p5xhqXASxUjGdiGXUPL+UFiaJCnZ5CwO1+4s0NxBg0PadbtGDfS6/eJUL69xblG/4g+DTRPLrxbHCjwVe5PA8xQ84OzkI2VYKGYX67s68sTnMCfi12s49qm1q0URwZyF9g3SElcknfAoLuNXaKsQYKE2F25VtAhy2eZjH9xkCsM= Received: from SA1P222CA0114.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::21) by DS0PR12MB7727.namprd12.prod.outlook.com (2603:10b6:8:135::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:25 +0000 Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com (2603:10b6:806:3c5:cafe::af) by SA1P222CA0114.outlook.office365.com (2603:10b6:806:3c5::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:25 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:22 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 09/56] x86/bugs: Reset L1TF mitigations Date: Mon, 13 Oct 2025 09:33:57 -0500 Message-ID: <20251013143444.3999-10-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|DS0PR12MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c01a36e-ecdc-4839-d7b3-08de0a65bf5e 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?gUe8bO0b0yZJWs9FlavRpSTgG+GaAk4Ud0xSeywnYteerJBUg7n8UqMQQGox?= =?us-ascii?Q?F0Sxwa+HN8wLTGYHMd0/6lrJXZL3og9gV6PdrdxwYH2Dx/gHXWvLaYMbGsAs?= =?us-ascii?Q?A7ONmq0QiuQUL3zJm3MYP6oDsEUf8gQQdQJshpJw+nBu4MGVRK/zSEu+iX2f?= =?us-ascii?Q?xCiKzTMNFMNiY7Oi7ILKJjlmJWOAaghyOfmEPb0fNRPQDY073hbP8JCfnOc1?= =?us-ascii?Q?LIhx0TwwDfiDMJjUfLsIh431lX1WnuR9jSzUjquYiEkYl/nUNl1u4fRfefdJ?= =?us-ascii?Q?2jmaVdrIqovqqc06tIT8AYNE8iS1w2c57yxk6Coi8O6V5i+Kn4m2Z5QqVk8s?= =?us-ascii?Q?DXca8IUET7SVqP9KsV0PDjyOOcUKGIdZVKCSwJeYeDCE/i5luRoEw+/T2+tC?= =?us-ascii?Q?e8Bqf/tJ3eNbzTCOzOsrg3WUhXB/Ks2C1PrI4TM/tAxm6v9EnjfDoKtFy1lu?= =?us-ascii?Q?ik3d29e1oQScNTxANJO5jHkIoXbwjm7q8wKReBNQo1b1YLGIrxxLSqyv4x8+?= =?us-ascii?Q?gHWd1NPsmmaPw3dcBEfc+Xi4RspkDRhwI/H4tQxUrIEamkUN3ylGZlzxfnwd?= =?us-ascii?Q?sRmGXyZAO8HCU493hm9g6xK76KUEJqrxoNpueA+oya5ay1/jP5Iue8cCR3dc?= =?us-ascii?Q?6DkKQojNl422gpFGzM6H/ZCqFV17T7uHKbu7VAzzM7qKenxR6dQTgAVQmeOA?= =?us-ascii?Q?IH0h27ncxc3BO8M2SDbpcQzYq3MtU5BKxzlSYyUV3pO03jAoxX9fRrLII3Pm?= =?us-ascii?Q?fSaWl12dekWuMvzk8kSL4tXP+sZxNRG7/oskDXi0bdr0aQb11PY7OtaIAg/S?= =?us-ascii?Q?FFyXNevFniPJHfZ6f5KT2womx0XOoz1ALc8zlLa34fbjlqaeLMlWW35gUtCh?= =?us-ascii?Q?KSZPO3fD9oH8wcQhkFKBZ74g3THahQAuNF7KuzQXwM+Z+iBXMcwwO+whsRDh?= =?us-ascii?Q?ChC9AqZq4zMQgH1bx62LsYgyvCRX64v2oAspETP1epx1Vtj3nMu+JZYEw4BU?= =?us-ascii?Q?57fNwT+M4DTJmUMNOk+Ylvr14UCXW7PtpCAOKls1spolOtjybwAnIYHrs3hK?= =?us-ascii?Q?xhjnEwq4xCmmjpoTaQzegPIC0aN8poeEX2ppe3O4Sny8crfhdo8LYWNTyNXd?= =?us-ascii?Q?q/lurwLUgZjLt/CRRyrF6bbodRq7NGzHxKc4wxANEaWSZQdNlBo1TksPgQnz?= =?us-ascii?Q?FFQYItC0xNb18mUbZaLg3mJcEiFZkCr74whAmQKz1czf2S8g3N/KHn1gHpGK?= =?us-ascii?Q?MkejkW+Cr6bZWokSMWsnuEs/zTFMvmFfT7oyI3Gco+88+kW66SyBSX0szXk2?= =?us-ascii?Q?xOTUSCuaEgpmzfShflAcqL8l4li/WgvEly4hntqWkBQ1lfYR6EnRsq1vnmSO?= =?us-ascii?Q?SDbSZZDrhnN7phrwCwIx1MFdf6y70bFo+PIbcYMOv6eYRxLscxPoCEB7uVSc?= =?us-ascii?Q?TCDVCI84njK1oiS9uxmwaEuPFkWJKZv9RQ5hBPVhDEX9u8xlFG8iz2JetO0P?= =?us-ascii?Q?JypKGJRgepLx4LOgtj5NKvev5dXVtT3VB6iMrQdrmF2zCbA3ZDQjUonJM/PO?= =?us-ascii?Q?SvYYyzQiZCpTZB/XOIg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:25.1080 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c01a36e-ecdc-4839-d7b3-08de0a65bf5e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7727 Content-Type: text/plain; charset="utf-8" Add function to reset L1TF mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index cc7b1b67d22d..b61bbeaf82b1 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -3059,6 +3059,15 @@ static void __init l1tf_apply_mitigation(void) setup_force_cpu_cap(X86_FEATURE_L1TF_PTEINV); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void l1tf_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_L1TF_PTEINV); + l1tf_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_L1TF) ? + L1TF_MITIGATION_AUTO : L1TF_MITIGATION_OFF; +} +#endif + static int __init l1tf_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_L1TF)) @@ -3881,5 +3890,6 @@ void arch_cpu_reset_mitigations(void) retbleed_reset_mitigation(); spectre_v2_user_reset_mitigation(); ssb_reset_mitigation(); + l1tf_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011022.outbound.protection.outlook.com [40.107.208.22]) (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 E15EE30BF66 for ; Mon, 13 Oct 2025 14:35:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366142; cv=fail; b=t5zF0YNxQUyXrrWm5fRof1NXu0rf0riEuG2/6CY48ZuDAyv9eselEQN8wN1hh42DgHFeRf0PmRGQO1PJnsC7Re6x0b+7BHF6zKZxRlumnaOS1aJvcfBl6cSN2Uj6uKexaTixrbzrfQpumsjpTNdmvGBKOa+z7kms/VDw0AYYiOs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366142; c=relaxed/simple; bh=kXhRWoHhi+Ml4NJqzBAW9m6nS1ztKcG60aqoyTbfsYc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QW4qfFbEgXJPCaPMPRlwcPpmiYvJ0tNe2wD1pNo+sWXqMQjHfqFbjEQANxbG3ud6W7dnX+j9ptg96oKAM9zMpHkymigIctdXXudIoKgI7oMjBKYioA7X5NJuCib3XNNWAl3fokzOoT/9yuWsdvQGd1qpZEXcdz13kWxfqWhIIDk= 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=uVmRw8um; arc=fail smtp.client-ip=40.107.208.22 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="uVmRw8um" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FEpf3yH1oAtnmNCyrq3r47DkOi8tlZ0WxyYkCnEiX/phS152/fxDyYS/KA3PEwyJhIXJqxnfME627CzwCUZsTGN2M4ZSg7IPTW9UDZqmZfhwxgrQI0/xkgBxVL/8cyw6t8T/KF9uVpbr/czpa1EKJ7hWNbhy2YgmCdeLrjJVsl7Pl3ng42lH/a8SkYqtFN9ywosSDTRQwEssYxjZQ6DonoqCIFocc3G2pyy8YgUzXwREzHX+0EACqJHMtJCs6YmCgIVUHFYSFG1bLcI5np3o3OMKAH5ZZhL83d0mOtkb0PQyAKxtbCqB8Ref9PkAGrUvW9pVXeLF299NX3qJLziB5A== 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=gCtFn3g6CuvIaGnUWTpBnENWlzTX3SN9gogSQ0oUgEU=; b=fVqld16+kE18yJ7A2gViDcF7hNH6ZwSCH/ZuABzxZZQDwyb2YozcoEG1OkTU4SahzXg72f+Onvb4KxPk2dsPb7Han/TStBzKXcfuT5Ht1XuizeaVfyxgbgQOZp7O7YxNWkXwp2/AAAKicICa0qamADhmI1oFw0wn0wsdi9EkX+hJnx+sj7x3AKmEYCUfsjsWnNq8BJYPyoT3HZOlkB3uZLaHMerSBgA41GbyRsu/dXM/sDP8+88dBX/Xu7UZNZ80+9UjHcXgqf++7xQ6mTNzTnYr2o0d3ZQFOMQgmERw5aruGNQce9KiViSXEIWKKp7KbjFESt9gsai7ywRiZW20Rw== 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=gCtFn3g6CuvIaGnUWTpBnENWlzTX3SN9gogSQ0oUgEU=; b=uVmRw8um3w4GOP0iCpw3mUZ9nbVapLUuSg5LDlOlpFkjWI1fg+WYvpTTafX20Gjo9eOg83mCRzE6GBTPMG9CO8Crw6hfNVkcOeqN18U7jV536xrKOS5M5Wre8mGWOOgEteMZP4LsqJ6jrVrRo67qnZJoVsFg303WkZLecW0mY+Y= Received: from PH8PR02CA0047.namprd02.prod.outlook.com (2603:10b6:510:2da::8) by CY8PR12MB7588.namprd12.prod.outlook.com (2603:10b6:930:9b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:25 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::6a) by PH8PR02CA0047.outlook.office365.com (2603:10b6:510:2da::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:25 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:23 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 10/56] x86/bugs: Reset MDS mitigations Date: Mon, 13 Oct 2025 09:33:58 -0500 Message-ID: <20251013143444.3999-11-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|CY8PR12MB7588:EE_ X-MS-Office365-Filtering-Correlation-Id: a61601f5-4cf3-49f5-0c63-08de0a65bf76 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?iqfv9r2fg1cYTqsaROMqkRneMAIRN8uDhpUClayiHEHSYAB59pAYutN5V8DY?= =?us-ascii?Q?W+rXILGzApU8udMsAFdX6gGXVz1LR1UIUtzVbhfLa/DgYbiuXNW0krkGeY/f?= =?us-ascii?Q?t5bT+6zv3cP36VNiDBnUXHZBptys1h2VcSNXpfyjuPCzgRXEC67IYA71O6qf?= =?us-ascii?Q?gYWPzSlKY7Ym51zTwwSm6uK3y9nbX6mNaCQ8kZ2j3XSM4tUUna/b4RsavIRl?= =?us-ascii?Q?fwg1dgDQaURllKFebMLBmRiTLADA6GaJIxWdl3LBHluzU+O6weY3cOoFT4VA?= =?us-ascii?Q?yWShcxuhpJWGRAc014l+fxMwoA9sy9vC9C15MRPg9N5+bxykQuQuqOWHF48P?= =?us-ascii?Q?orAJkylXuQQsZqkiPQSEt8X70fr9AQVbdx93Z23cFkFWbpbgqXmI0Ua/cjvE?= =?us-ascii?Q?6Seo3FEd2EDKhdQY/PbPl5A068bskjecop8fSNQ3oEZG5U/kxxl1iiJTr3Oo?= =?us-ascii?Q?64opzKkv071YGBvdd35XFUf2DFcESoX/aDXPHpnqAgU/pTdrmZTlCONI3sHs?= =?us-ascii?Q?kQ7CbV6fLzlhcbQxjYQBgmJgXr5+/gDixC9053uXzWBfpFDgowQKO3rpM+64?= =?us-ascii?Q?QF//hHv4jXaRkH6kjthWUHmPY/nw5dAgzcdC2T1vdiuzB3zbWi2AH5PivjXX?= =?us-ascii?Q?vOxEXJMMw2W0YZ16OTU/RFcGrXkMv21jl6cfwA0oVRYIzB7ekCpFLhbE91eq?= =?us-ascii?Q?WQGEryKn5MjQ3faJzmd0MnHoTZ8nX7+t4SyKIoWTUumZljmxVLn/5JT5yZDy?= =?us-ascii?Q?udFEJ9vvZoae6PbBc1irhH61yqR7nkbfHXKPIgyTTvysescx7toGydHXQmgT?= =?us-ascii?Q?Wz6Rr2c61RGtMW1rQ3GN2gNY6XFj4kyp/5ocKFNT0EBvsFlUdgcAooQTToCk?= =?us-ascii?Q?bVHK0prrRrDO7y3MTOJNAr8Y/gJqf99tOEIN1PvNEVlE+mN/809E8d/uEDHn?= =?us-ascii?Q?lyiAUmNGCinomrcQQGisBiw0Cz+TI/orefe31f9SZOLYvpMuEokiGJcEvkt0?= =?us-ascii?Q?IGvXfcBPVR3qUPsBHRuIUFMq83Bz97TKMNpQc/NQaF9rpdc+wwWaI5QrXVdf?= =?us-ascii?Q?yD+P6Dm7l5R+OO7y6fN9MbX6FrlJaYa3MygsMbRPfZTAe/+JGaErK+DzflPw?= =?us-ascii?Q?mmQXIWdlPAf2sqirkZRvxnGEpOGGg3IUXaHywiq1skkfcdQIUFzYvgxdHfNY?= =?us-ascii?Q?m65JpbWO1HeZVLyIUmQUgANYJyHPY6O9Z4RSPqfvHDp36URLjKQ+T/3oL5iF?= =?us-ascii?Q?jdGeKYd6HHabyLvXj26rxhD3F5FzAEIB3wMgBCsDkltAj+rH1sFfQe87Biwq?= =?us-ascii?Q?tLEpeFzak3/KOML5AINQur7XmvdtmtvrOyVgQh8asZrooMYd4gebcgmYcrvR?= =?us-ascii?Q?eu4m4ZT4ERP93KIjk898nBvqZBgf5HYcpRA1F6I6orKVkEscIo37yUi30cfC?= =?us-ascii?Q?8cD04nPkYXfBrz+FuSCFAAufmvb2Avm4pJDsV2zFslpyuodTqjzdjjYv8J7M?= =?us-ascii?Q?p6wBEKefE5Z5CyCTXzYqviWcZl86V8Qq8WqF7ffjeduXTmb+vrLEZcsFDTbX?= =?us-ascii?Q?6eyhQLsLjvE8mW+0BhQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:25.2691 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a61601f5-4cf3-49f5-0c63-08de0a65bf76 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7588 Content-Type: text/plain; charset="utf-8" Add function to reset MDS mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index b61bbeaf82b1..5668a8b8821b 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -554,6 +554,16 @@ static void __init mds_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void mds_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + static_branch_disable(&cpu_buf_idle_clear); + mds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_MDS) ? + MDS_MITIGATION_AUTO : MDS_MITIGATION_OFF; +} +#endif + static int __init mds_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_MDS)) @@ -3891,5 +3901,6 @@ void arch_cpu_reset_mitigations(void) spectre_v2_user_reset_mitigation(); ssb_reset_mitigation(); l1tf_reset_mitigation(); + mds_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012012.outbound.protection.outlook.com [52.101.43.12]) (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 C0B61308F32 for ; Mon, 13 Oct 2025 14:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366133; cv=fail; b=b6SF/kaXhfT0itpOdqOclwUBsfHTWwSyoMIgnnxx7NJuFYzpaP67cnusafl3FSSvKT2GuYNMaGASx8y5UwlNnL5TeeqLFm8ZZQ3ORXB20i+qBw8leW3SXCXP/W5CrjJYx7WzVP0hJNGOJs98lzdwNLFB28T6EmNwMSlmM03RHNc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366133; c=relaxed/simple; bh=dqcEp7KgbuKxPOL1sBiXjgF21UUbpkwhYBFPAyoJ9Ls=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IZjbCV43Ohx72UW5Zu8u7jG1XTvxocsHZfHWhkc3lA3V9kdFv1xgHa2enx5t2tkpWc7Rsoky0fsNqLJaeBt09vVd7iLeU0kxJELX55Jo5eUi/qLLQ48h3HHP3OTPHercvYES/S8oSUtyuopyg5DUJ7zYDB7ykrPGa2rhQxxkwoc= 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=2Mxr75SF; arc=fail smtp.client-ip=52.101.43.12 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="2Mxr75SF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GQdCKvSm31bvr/a5qOcsbKOw+z3W8ATtmDSOgesa0HixZvP9Znbg14p5ou+rvKvFkWua5pM7WSXLd2D29p443/NzWcyOkS1WizX0VMT8qvRx/hUkvsg84hjudLTh269xUrFI2CWbNNwJSqWFo6z1Ohabw/sUGGrqTWSaNJ9Aj7zvOWkGl2L9yQ7tsawNIAWHpEWCYWerNlyw/WgyzxmFMWs35K+J8TgwexFY7Gy6vVCMZD2whiukSleBCd6Co6Uk1zq7s8jcvyvwpKwALcNS3yMoJD40jfFXZXM+0AOgHj7Qj9FQ1FbYKW7jiaFCOZvNXv8h/iFm+lcUhPwnHPSgpA== 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=XiEgwNKOB5cCl/oujtxDTGARdedDYW5o63kpIyOtbCk=; b=JYes1qObonYbJ/0zcanxcN9oa+4/zplLNRJ9q5/RoDHZOFXk1mCNYx5ubAlRmNaBAUkwkxjNqfNoU/9DbWTw3w9BSpkYIzDWV+GM6+oUcHQQ6W++3WggTAyKVR1gjYl9EeiB67AJfKoWXA/B3DNDWqvYwpCJoSqb5XX7x7DhB/guo1ZFaDnkt0vn7srZLvxt61KxK+ARNaQnFsaueOri8yeONaE0NbI59WmU/ur9uAo4i5aJ4Ud9C753GUg8ZL3Ah1TKcxw6m9Tbf9K+ll2IiTdVyvspM8MGzQ3RCy0M76rrkpYxwH6eW1mGtWKPK/lS8XU8bul6LPOc2HWvt2YHyQ== 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=XiEgwNKOB5cCl/oujtxDTGARdedDYW5o63kpIyOtbCk=; b=2Mxr75SFLC00eGqPveGcaUpv8wUWCkgOY6SsLCmh9ItJjvM+vd79IVEjpSXftBRgLs/dvWFafnKWVSOQ2H052TR7pKJU2gkbNiSS2/Q5sej0tdUUocwhpAdrF4HjYhhu+SZ5viRmh+eI7vLu2gZYIVpF/mnTSBeDYGPZGqTVYsQ= Received: from BYAPR08CA0065.namprd08.prod.outlook.com (2603:10b6:a03:117::42) by LV8PR12MB9618.namprd12.prod.outlook.com (2603:10b6:408:2a0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:27 +0000 Received: from MWH0EPF000989EA.namprd02.prod.outlook.com (2603:10b6:a03:117:cafe::6d) by BYAPR08CA0065.outlook.office365.com (2603:10b6:a03:117::42) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:24 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 11/56] x86/bugs: Reset MMIO mitigations Date: Mon, 13 Oct 2025 09:33:59 -0500 Message-ID: <20251013143444.3999-12-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|LV8PR12MB9618:EE_ X-MS-Office365-Filtering-Correlation-Id: 958a02b0-8a8c-46ec-060f-08de0a65c007 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7r2Goe+RTF0ZvmWGKQl2aMmnLtDSJWMYl6UJO2Hqm+vvyvDuXDNQ+Fw2vePq?= =?us-ascii?Q?PzqYOm8WcM3bJ6NWAyvP+kGpAMvCi8PexbuZ5dDHvHI2AYllES6ApCCeOlbx?= =?us-ascii?Q?jRSU9oKsiEzEmFu2r2cXBgeiCm+z/7ANIdUBC8zw/d6ZRJkHEEOTyZgyC95P?= =?us-ascii?Q?+NR+tDAvKwrGTH7G/PH6pBjEWZyyiBvG6PO8xd2NVvVAlYoW2wOZd0MGfUDT?= =?us-ascii?Q?3mldK9LwP/HSA5TTUrjLi820RXzdc5pC1LVDhNN+LRAUk1qFxoVCUMo3v7qn?= =?us-ascii?Q?4E/Unwkg9sgRTqAldure5Ang3jCM2aSkbu2nuFb9F1MR5j5S1iGobUv6px2x?= =?us-ascii?Q?BEA2wYn7c3BQElpjqtR9z7l+o8KpUPCgG3sfNIjjoXFDVZfJQ5fVGazDEd26?= =?us-ascii?Q?3ILEeLCZgFmYhI3d1PzB9ovpwUScpYkPGGUHZ9Q52KtcSfdNn+OWUcKgsK99?= =?us-ascii?Q?ZgKko3F/DpBM2e12dpUOcQT/RIF/Ex4gGK3vMvIxIjqrm/D2BV7Mr0k+kolC?= =?us-ascii?Q?Xrj6xz7n1OwTbdhKyKUYVGdJ0sU9D1OY8cgynoApdljfM3KJPuwWpPUcZrZz?= =?us-ascii?Q?NhlqofwAnA54R61nHcBwr/D7F/IIt27FGgVTgQN9ydI9P50lv9kh4Ff3TNdl?= =?us-ascii?Q?blnkGcS+NXtSQ7tKyuhMW/A6tb5o44y7JXbQT80OhZKt880SVsiSZJDu9szG?= =?us-ascii?Q?zAq4qqrQAoSUZ8BlNgYBbj9uvH0Np7QJXPqI7nFwUrnkaoOzriDtYTGsi8jS?= =?us-ascii?Q?BaQ5rZiaE2FjoZuO+cV3ssUI85+uy9JTMQSTVWqb/GLTKRY43dax8Vg5OGde?= =?us-ascii?Q?3anwCs2WIrmlL+CUD2uS//DI76lFoqgsLIptkwvLjTnZ3PsmZ2mgaEBXEi2D?= =?us-ascii?Q?O5p7VPKmgLaDmvSUtGW000p5vtEAFVs1N61aNspPJtHwydUzlzfZCOLGT42Y?= =?us-ascii?Q?jANbIph5WX5WYWtM0/FurpWBT4PUdFezBLsSfWTHxZRIeLc4wEaWmthRR5Wb?= =?us-ascii?Q?PlVtB0n+d+1affgK4QafgArXdYO2WKElBFNc7DRgDssmZkUqWakaage2jgfw?= =?us-ascii?Q?0Y8k6ARAbAEPu7gSmAXQ/4ydrOw53SUs6NFHykwVIZMjXEc0B0lTjWQ2+qMw?= =?us-ascii?Q?nNK6obBdaeqa+kRYcqISghs8JPzciI5m0uiPx+6aX+QQu1JNMjDOLNt4tyTm?= =?us-ascii?Q?HLrvlNlrf4thW44O8dETOH4dpovkauaGfnX+tvwEF9/IVoWUIDu9L/WGx/8l?= =?us-ascii?Q?vOyajYu4RbEAUvu3/G1RJfSUuBeGjLcW+weY790T3Ry69K2ml6GWdik0GZh+?= =?us-ascii?Q?VJ6PUVb1YCOXOXDMk9Al+3LXHOMX2Bkm2LnLsR1qOEY1pElcJvkDU5hsCf//?= =?us-ascii?Q?zxd8kpku/yrjrpjSWsUL0xzdvEaeXguqmNIoAJBuApg9ch7Fus1tkngv6vyS?= =?us-ascii?Q?YzbzIvHpZRm1tSvygWroEWpF7HyJhgGzgMlKazFpnSBYT7GaYKOJXSJrfyl8?= =?us-ascii?Q?cB7kRH0QC60Ma6My9uAx6ASbvRaUEOrOonId72brANZlmM7wtkV8lGM6ZPVc?= =?us-ascii?Q?vtVhsIPp826o6voRcNY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:26.1444 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 958a02b0-8a8c-46ec-060f-08de0a65c007 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EA.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9618 Content-Type: text/plain; charset="utf-8" Add function to reset MMIO mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 5668a8b8821b..9139c8187913 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -787,6 +787,16 @@ static void __init mmio_apply_mitigation(void) cpu_smt_disable(false); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void mmio_reset_mitigation(void) +{ + static_branch_disable(&cpu_buf_vm_clear); + static_branch_disable(&cpu_buf_idle_clear); + mmio_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_MMIO_STALE_DATA) ? + MMIO_MITIGATION_AUTO : MMIO_MITIGATION_OFF; +} +#endif + static int __init mmio_stale_data_parse_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) @@ -3902,5 +3912,6 @@ void arch_cpu_reset_mitigations(void) ssb_reset_mitigation(); l1tf_reset_mitigation(); mds_reset_mitigation(); + mmio_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010017.outbound.protection.outlook.com [52.101.201.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1E643081CF for ; Mon, 13 Oct 2025 14:35:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; cv=fail; b=RW3eQDcAe1AdG7MaV6eIAhDW26NMuJLY5sEmaabHdJTzXGDrCmcThbKGe7zahC6nC5YQjnJqTFPthrVKHsAQ4EIHqJMuiGVDarSw/dyUA2/etc3U6qnfksBI2Bkno6ECPebXbo8crmRi0eemFO9+hLpgjWg7gM2O90Z8gXz7I+s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; c=relaxed/simple; bh=eYqTmc/56jr8w5jGfqO3SlNprUqAjhZ6Iw2VtnklVaw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=b6WO8noZ1+8ZMA6TM2nUtthc83ph7dS9VL9ncIicKOp3UtRDna9Ip2sgPrRxA/uTxeUEe88GYGEpAclkmn4aSWczGIHGOEe4tEnBjhr49JDGvXgYQ56E+WMuS+Te4tAzBE7xecsEPvMcV2DPpn/TatB8FZyxZhw1ZOEWxuZKujA= 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=be6CLSuL; arc=fail smtp.client-ip=52.101.201.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="be6CLSuL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SoZeYGup+3O9Pb6FcKMZtZseEdYNeaRobef//rFsApDhHjwdnNnSc/CTG0X9O8g2aT3heoe4r+NpKCQvTa1Pv1MJ4nhGp14AlXjOrPdYl53ksKmZrHAyG9pHmkaBQGCVRRyAhPpPnv6SvYyDMhmaiv5yCzhQXnuQ43oGYyZR4hk4FqXSXC77hk7tv6DS0Z5N/mt/01y9ErQIxieJ++f2IuqepT4dnlRzhR1FXu1qPIIBJMA+SupxCYltGNHaNtRs7Fgl+D1EP2zcSZJTOezfUuiNo7pQzvx8WYJ9alfhbpcQAvdKp69zkL+tqb2+olNLaJXEKusfaNeallDGskvKWQ== 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=vaE903t4OSb67DeUTo3o9mWCAhyDdJx1T4Iap3VKmG0=; b=UOhrhDb5w6ynINDLx2Ul/uSyrzPgSwvYRiZyU9hXMr15T7BvX3fi9NZDBCNkXseI6SunJmhFRWf5VAqFHSUSD5ZngMFZxsc2sHd2ldui+8J5JQeuR7zjPC3GcI3+2SkurWcfpA2ELx7xJl2Psxs1qdzAqTD6ZsIeNaT1/a7XFjsVv3y05Ca17655iSg8igulHJ77X2TgZa/twY78PnJRwmeix1AXf+jPWLQ6LwDFnXVGMgazuXC3emVdt4Lh9NnNtpR8Zs2acdhp9SXyGihEuji9MFbY8jui3E2bQeUhC6s01dn/CbUSMEAENCSLMAVgHf1XoLc8JrCRI7zRHuWXRg== 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=vaE903t4OSb67DeUTo3o9mWCAhyDdJx1T4Iap3VKmG0=; b=be6CLSuLiDXSjLZAu7XA2o6TH/ldYoeizt2LeOyml7l+PTioFA666SKR/orK0FNjO3elRwwovAD6srcAQ/VVCrSPLUnDCw6E06TyG1AdiXFhie9hcUAAcuP3pu/Jm+kbIG1bkjnxNGsB22bJEuZFIqy6Xg1n1Am+g1t4mTCyZDw= Received: from PH8PR02CA0038.namprd02.prod.outlook.com (2603:10b6:510:2da::10) by IA1PR12MB8189.namprd12.prod.outlook.com (2603:10b6:208:3f0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:26 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::72) by PH8PR02CA0038.outlook.office365.com (2603:10b6:510:2da::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:25 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 12/56] x86/bugs: Reset SRBDS mitigations Date: Mon, 13 Oct 2025 09:34:00 -0500 Message-ID: <20251013143444.3999-13-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|IA1PR12MB8189:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ee10389-eaa1-4420-e63e-08de0a65c000 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?WO6a1bMbPEX5OF/z6Z8X8LMutDOSi2DpovBO5EpcMkWeXnrTAMKguHhXe2r/?= =?us-ascii?Q?iE5Bqi1xze/y8VORVFLRxM3d6I6xW09dLVWM5r2wJyX0wz+/53Na31PVIPVX?= =?us-ascii?Q?1AuCrZ1whLymhvrBHOQ3yAjrDFpK7QPiJ8hWq11lF45UD13FmL41G1AkJsbN?= =?us-ascii?Q?VW9WHW5JrHgewZUBY88TPZ29LQESP6AI7sAyCwvNItOVXaIwFzVJg0UuTGXk?= =?us-ascii?Q?0GtNccO/aDcOlSvqAHxwRFnSwxRA0oxlXYrpXjowvG9nBNOSbm3w1Z6rBuAR?= =?us-ascii?Q?fvrOTNeSIrS+8BbWbjltX6FWIg5mHhm2I7c5LxS/XCv+oVv3o4RyzEJenPV3?= =?us-ascii?Q?0OIpsZ96vVV26+MY8bvLK2pniw78RR5pw6tEeU98YNkkSsj4C8Zjka83zk0z?= =?us-ascii?Q?Mg63ZdCVzToBOeUNEjjFHjTkqOzycxsYCUJ/6CU9PMCwyjXIbmEzD0pWquoB?= =?us-ascii?Q?uvWELCYhK9xCM8wV0Y5gl6M5wpxPV8D0ZDvLhVJMdYH01CWnB3TOwByDJzEh?= =?us-ascii?Q?CQpTY0hrlNHLpvCOo9e47DKX0KjVdKhv2DhCOHVgqkKhkcq4odwdKKoDKrBW?= =?us-ascii?Q?uPEMy5DVuk9J5D4MbCH3GHmyku9vM3kLUPjgtBHKlCkworb3aoV+Nd5UYjqC?= =?us-ascii?Q?0R8hyX8bMORd0UMYnUmpe8xxOAOOQ77cMWR6GWtXwQil6F/cOdsj1s/4VVcv?= =?us-ascii?Q?J6Id8WfrlJD7iS2TpJ6BcwtvF0FaQhsPr+pwLRkzaMMbpsAxybpwLup0yaJv?= =?us-ascii?Q?weC1bvw1bnyu4bSeprprGO1sXio/epLW9pUDoe18C8y7N2r+xZfPBtm6eJn0?= =?us-ascii?Q?lNTvvoX6M4ECqta8Wiu7iUMaB4G840JajDk3u15SqghjsEvelh7oZsYj9H4x?= =?us-ascii?Q?JgqI7A+/NGJIoo5L8OZ8+dTdzmRQ6q1kfjP3Kf3RJWyVMH98REDbWORq/jEk?= =?us-ascii?Q?cKcBhR6aF4yko/ezysy44YpukT7f2unvc0Guk3WiXDEfL1Jest5k+gOqEQSc?= =?us-ascii?Q?ZCdfqGaEdBPIi+gyocEOzGFtUVKJ1CIa9/CXFVEw+vLzmSvGfgHJFBbjSpaK?= =?us-ascii?Q?Om5tRundp/z3XfqbbcdtEmYZREb3bifyfDAm9scrFgitBFfhB4lCN6kZyjlW?= =?us-ascii?Q?8Clw/sqJ+L/7/Y4DCelBRrs5dPLNlJcbG7V/YILQbMoZJQokpKR4C0mhqFVq?= =?us-ascii?Q?MWEwWR9JQEvEeiF26Jb/sH/sgA3mCx6/cvlIvfqfCJRnATq7PZAczxa+gUIW?= =?us-ascii?Q?aQleheMBbKdaUiNkF9uM9TCs55qhcb2KYbEOkLot8QMmrdMwgirfDP6aNMJR?= =?us-ascii?Q?cwByYl88C6m5PWw0XX63P7dSzmLwr/CsgEr2hj2KQz7qX7NGdBD10U4418+7?= =?us-ascii?Q?AzSCJxiqZsvCIs32mknC1M+7Gr4yAPCRNjxebuHz+8rrLc9hjSBKKwb3Y9tp?= =?us-ascii?Q?GywrC7EIZuGYH0lGlwWgZJQ2vrzn40qkCkAwdOHfiki6hzaxpxaxTu5P+KdE?= =?us-ascii?Q?vz6rLP+4G0uZjTxgyvxB5vrWbIpl3SQUfYVDzJweDBRpwwohSTBKECCMWR67?= =?us-ascii?Q?RRWtW+i8CHiUMznZjDg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:26.1794 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ee10389-eaa1-4420-e63e-08de0a65c000 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8189 Content-Type: text/plain; charset="utf-8" Add function to reset SRBDS mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 9139c8187913..9a9d5309aa56 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -993,6 +993,17 @@ static void __init srbds_apply_mitigation(void) update_srbds_msr(); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void srbds_reset_mitigation(void) +{ + /* To cause the MSR bit to be cleared */ + srbds_mitigation =3D SRBDS_MITIGATION_FULL; + update_srbds_msr(); + srbds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_SRBDS) ? + SRBDS_MITIGATION_AUTO : SRBDS_MITIGATION_OFF; +} +#endif + static int __init srbds_parse_cmdline(char *str) { if (!str) @@ -3913,5 +3924,6 @@ void arch_cpu_reset_mitigations(void) l1tf_reset_mitigation(); mds_reset_mitigation(); mmio_reset_mitigation(); + srbds_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013000.outbound.protection.outlook.com [40.93.201.0]) (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 340F03081D7 for ; Mon, 13 Oct 2025 14:35:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; cv=fail; b=rJrAtK5xjYMh3Zh+A4919sgu3UspRvwDUS44sDb41UgcQRBN4NLV7RnOavL+SPXqSVAhY3QT9Z+MVWyKpjh2MA5mgNUgxRN5JKZGEVTf+FfQEpvoRklO/FZQejHlzxhU6g13SRnRJZnC0H3y6u8WZpYC9fqcb1c983TftXqrmkA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366131; c=relaxed/simple; bh=gnYCgii+whL3aqL5OGcVub4rbWIAWkIZ9euOHRBUkQw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aB7VpN1bc+f2A9rv43Z6dO1ViXiWkQp6qL5sg7T1SX/qeLcH9+obZ9E2FYAZMIK6nj6euzRCkppqN3bbai5Zt3Zp+bMYfW/4n4j5+UukosZrkbs3MAyQEFjp+FBTHhiMQtLg0CyTzEi13vxoQk9WFHGNuQ/2UFmGenXjvc6JvjM= 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=ei/Wwz9A; arc=fail smtp.client-ip=40.93.201.0 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="ei/Wwz9A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TzFdKDO424ELRVFqdfHpfdwrZAGOoqAcGtWt6mvdc9KTKQ1VTrUMuhtxqm7E80q1OP0kaOTIkPISaqLrGIrXLyinUCokoQKWzPWL3d3zorxm2MxhVvUDfaQiR2v85akp4UJX17oVV86R3rJd3pVNmSAHolS6Z4aTxYZGq6jlRij/d1vNddrsBTIi5Lx3U9537cwuHWxcg6TZqA2qKcEmVnsnzvHqMOTTlEJTEYYHqn1NCubanntT+8qAMI/x1bYrHdJxJ1mdHTsj1eqUoeJO/iTiILVPQP7hH1UqX4fFL1Kp68rKZtU8UDAnH87F9s+E3uKNqCve4kr3dApIn56rcQ== 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=eifWsU6LUbv+jSM+HUEkLHKU+HA3dk98cm4FSQkmrcs=; b=J0rHO66jJvf5MnJlS2h0uIo9R6fXrf0DJdbMvzv2aLpJsriumLWicYTvzt+NuId1yvyTmbP9VXgCEZWJd3vNU9hzfglmzh51mAIw2RoPZICilV942sRY1oHJqAaMHaCyOiiKnDNyr9oax5bj/yW1D19X3bWEZWyCyHGHysgnkUMBnR4IUjbBDPDsmeUcqWNVcP/gbUH2iS7kT7SlCL2fawEh0BGu56O0QUEUDyqZtWl0BHuQ/UFgBjSVXFf/qRbe0HF0hBwAH4SlH3zFIS72fuuXjGUSCsV3/N0RvFH1LWkpup0NfOf3rygcW2TpyiEGr2qXGcybD4mnnT8zQvXvow== 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=eifWsU6LUbv+jSM+HUEkLHKU+HA3dk98cm4FSQkmrcs=; b=ei/Wwz9AZh/eF0djlKU4/tjW9czOlXiR+FFDsb5qgxr/XF1oLtSl4aECUX8D78EncXb94zm2FFDxkQERgEGRr+rNq4x+uSWgy3XeBKdiHaP7MYFL4fqVM7KYAiHk2DT2GcYx3iQ+hdys+w5tKm0HO2aPVtJO2/AMUG4nCYzUuok= Received: from PH8PR02CA0029.namprd02.prod.outlook.com (2603:10b6:510:2da::27) by CH3PR12MB8257.namprd12.prod.outlook.com (2603:10b6:610:121::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:27 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::54) by PH8PR02CA0029.outlook.office365.com (2603:10b6:510:2da::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:26 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 13/56] x86/bugs: Reset SRSO mitigations Date: Mon, 13 Oct 2025 09:34:01 -0500 Message-ID: <20251013143444.3999-14-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|CH3PR12MB8257:EE_ X-MS-Office365-Filtering-Correlation-Id: c2573e44-4365-4f96-1a55-08de0a65c07c 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?ls3LTOCnnwYIJcwKVgUjm6JE7BMIRfAnHfhHBlR9Y9WXruA6HDMiI/oNwIHm?= =?us-ascii?Q?+spRfC/7hVKGbqqsiWjndbzvLBXS6FDx6u4tWmONedk9WEz0a37O5aavdPf5?= =?us-ascii?Q?K5BbchGS51eFyKPfOv7bLQpNuoCfqIJxnmOjDdh8P91Uic76Gfbml3tJxujN?= =?us-ascii?Q?aNX7RZnIpn8uoIgfSbp4KWK39XYCvwixNLpYQ7VZoF9WPdeZ2iOJDe/u+vrD?= =?us-ascii?Q?+ZU/8DSYJ6KsHeqUUSLpZisheVCK4i2I6Ika78C0PuoB4YpPvqnsANdRYM+J?= =?us-ascii?Q?EjiCMaquW7qTh0vj4Hw0Ht69qugDpWsd4linDVlLYg/a0g1PhfWucxxPjDMW?= =?us-ascii?Q?HtoB+1hxKTKYlQ1AXnK3rKqhdzmHB3QS+ziaFhPRL9DDCSGQ7R8FZfrAwVmb?= =?us-ascii?Q?n5xqrNWRisTKbkF6pqDXvBaq/a8UroWZ2Se7ewKFf58BCyUqIx+NrnvIlTe+?= =?us-ascii?Q?lMtFeUfXuxHyrFJQ/3JKZUSxpzwSQbEDbsfTImIM/CNN8k19hw5yvMPPytPx?= =?us-ascii?Q?WxRSFocfRkR4TJHp2aS888bmitgVxIV/jsKXTR0Pru8lf9H1Q7Yv14hUHcfB?= =?us-ascii?Q?QIzn5W/gLTPn/XPbiZG6Zu341phoV6xUbajGXE1IsQXU5NZWRthoeTLNb0dL?= =?us-ascii?Q?Q7pooYMwH0ohozqhns5xE+5oRS8Mjznvd37UBTGFfy74vhNPsTCOIlctOoIX?= =?us-ascii?Q?U7D4MMtOhvWt7X4xgEHA2/FvFDlVxcA0ZbuyBl7GnnwIPmpeoEHv4wmxWjIa?= =?us-ascii?Q?Rn4m/zT5A7qxjF5ajwphmmzjT3FpUZ3n9MOecWpSsJJe58Bo4PowPvx+wc3S?= =?us-ascii?Q?5plEdeJPzulhVUG/KHO7uh1PRCOQyR9r6gz4LYlQBGUpS8RaeNhfTWXzaWYo?= =?us-ascii?Q?pdoSB6DsBYpzUlb9fmzQL56Mdsj09bdMDQ3I2wOahC95bG8PttUi18/2y87i?= =?us-ascii?Q?WUuhRJ9iEhZP4BARwAV1JPBJ7nynfYC8QwDCQHMgNEu3Z/Z/smIct7fbBY3q?= =?us-ascii?Q?WL3FhNBJT4yzTdmPzYUcXx7yM/W5fyASdxbrtK3Vo8o+fnkv2cs48Rb2NZDp?= =?us-ascii?Q?1XEBMY72J3IpCPaFxLdO4R29lK5Tze+OeMNYmYMbhCHJIV2sZptwc0zM7dL+?= =?us-ascii?Q?pR4By41K9DEZ9h94Z2iLQIx6avBC6moxDomzaB6NIHSc93ABAgERGDANQmP7?= =?us-ascii?Q?tWpZep5JqbUu27VaegpnPPWrfBeb/+wQpOJG4muqsItEnKhgcMGnBf3ZRuUb?= =?us-ascii?Q?2yzF0gDGHjnExvGy0/qm69Mx2ktwQUDnVGLHYpWQoEc2zxho/jd6YM0C1Lao?= =?us-ascii?Q?bU2DVftpGVwryssA+4ImRGifMnpOUAPWvO7zHpOK8kyt4rfvYX2/SQiAAoLv?= =?us-ascii?Q?FA2BBGUCYkyhVKUaU+iYQF1SgLNSW5Xxm+z5vkVb5h+W/1280wND9WmvzEGq?= =?us-ascii?Q?oXqsv0UqWCHezyzjZx5JOIbQDEeQl8x4iy08rwl/GTIrN4kNrnWDZ8yUKUFX?= =?us-ascii?Q?R0QgGHBfaWrH8eQohq6nS9e9OHNuU+C2WOMrJxo/uQU0yFuzJZr4tZ9pIDwb?= =?us-ascii?Q?xRPlVhsAeFMkJqDWNZw=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:26.9878 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2573e44-4365-4f96-1a55-08de0a65c07c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8257 Content-Type: text/plain; charset="utf-8" Add function to reset SRSO mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 9a9d5309aa56..112553058ccc 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -3312,6 +3312,21 @@ static void __init srso_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void srso_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_RETHUNK); + setup_clear_cpu_cap(X86_FEATURE_UNRET); + setup_clear_cpu_cap(X86_FEATURE_SRSO_ALIAS); + setup_clear_cpu_cap(X86_FEATURE_SRSO); + setup_clear_cpu_cap(X86_FEATURE_ENTRY_IBPB); + setup_clear_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT); + x86_pred_cmd =3D PRED_CMD_IBPB; + x86_return_thunk =3D __x86_return_thunk; + srso_mitigation =3D SRSO_MITIGATION_AUTO; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) "VMSCAPE: " fmt =20 @@ -3925,5 +3940,6 @@ void arch_cpu_reset_mitigations(void) mds_reset_mitigation(); mmio_reset_mitigation(); srbds_reset_mitigation(); + srso_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011015.outbound.protection.outlook.com [52.101.52.15]) (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 710D830BB84 for ; Mon, 13 Oct 2025 14:35:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366139; cv=fail; b=qWdLPabXiCDbAnnPoWyN9nfMvTXtPULgQVDOo64l6tY0zA+23Au8oRVis0svzIjzW2dq6QFX5nncYeJAUPw6WU9JHRhW652RaOWl+/gNaw//S8PWR8ohx5nzoH7TDhiyad8GW4Cv7X63WAatR2DIx0ZAceSmERvR/GjILWVsQEA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366139; c=relaxed/simple; bh=WtTT7bXpDetGIyQYViOqC5h53z5JAq1np5xCb05/sGQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LWfGL2ZrdVHY2Dao5GkiSava4vK7ZyfdBIUukFdqLYA54kl3kAE93oX1F/gRXOydExi/s943BXTsvntgE1LwWV9YXIORFey/9/m2vvLnH2xyUK4Wlx9iRxYqZCAfmwx+CjgM5giFiIwaOiBulLRPEzFmh73oLFW0yB+oYxzq4MY= 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=WXu/bGe5; arc=fail smtp.client-ip=52.101.52.15 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="WXu/bGe5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AXcIcoN9AF1cD1GvuVvNDJ8bM4eFlByEGtYPqOqwoCK5q/A9gCX+eolEu/qklOObZQeai+VIxTUc5Kyrn0Thg/XsidsYkwxTW0VwvwDxlWLODxLdIod14/1RgcMsh8UHS8s764upB7/h8CEUq6e3RhSoZY4zJttBeXAtgQtPlct9IpCJGRRymCQcjwu3vEhGlYQDnnjE5TsGg+5laMYO0jm6xygT2C84PyyqPL6savY3DghjjkB1w1BeV6P1Klew5mttx9dRTrmZFJFXuSmpd/Ft/loije1AOlQADHev1prWgUoJbcdbnxQ7Q3q05FGJsT5MILUQcW4byO9uUDX5eA== 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=IF2Yd/SLma/khcJPVqowYBMVrlGVefNscPk76loh3lw=; b=KyzjcZj77Zyd+ikppIqmPDqr+/8Pcp8aclQSjoX+qfvVWGv1+D4HaECDPZskJxzi3I9O2WAdYMoD2vGFV17IaYA2CYtqvpsaIQekutTtr+fRJSdD7Ong4ISgmK/T6JFV8hXbvZj5vjQJAsEjDjgKl3GSnI7MTw+giP8iNZjBwU3YFWSkiD4sRmSSCqub19gFUX2fi9Hd4sWHkGTowjpdGWSNBjHyf2ehrRm+Jp8lkDVbr0hZw3wPtuR7MFXXkeduqn+Hwo8P2/zu2Qrh2XWYW/b/M/1YfPogtc/AWx7BbNOKbkmgGagUaC8PMM526F1f0KGvdWX1CttpI6IBNosEmg== 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=IF2Yd/SLma/khcJPVqowYBMVrlGVefNscPk76loh3lw=; b=WXu/bGe5AoxC9MeChS5hWWTDaRnyZOz0AVa3N+GrscNl6H8G2U9XC+v9eM6jWjWzFEsQT7aNlQ5PoU9wjIAih2n8nHh4f5VdLnK9FCXaPnAT4MQVWLF8yfa7tuEz8AyfS5dUEfYbuRhjFj/tb+mJuCgw+ZGda79ldaLzFAsZ+uI= Received: from PH8PR02CA0044.namprd02.prod.outlook.com (2603:10b6:510:2da::9) by CY8PR12MB7292.namprd12.prod.outlook.com (2603:10b6:930:53::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:28 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::75) by PH8PR02CA0044.outlook.office365.com (2603:10b6:510:2da::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:27 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:26 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 14/56] x86/bugs: Reset GDS mitigations Date: Mon, 13 Oct 2025 09:34:02 -0500 Message-ID: <20251013143444.3999-15-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|CY8PR12MB7292:EE_ X-MS-Office365-Filtering-Correlation-Id: 73fe5333-decc-4f2d-3f97-08de0a65c116 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UWZZSN2zW4VdrYu8ZUErpfjZsS9U7UiM98OY5bx2dOKZU5oo3bFEvU/Iue30?= =?us-ascii?Q?4Ak/NmxNOUdpEBlIGEozADGl8u9lNFlujKdzUlcWhbCIaHj08/iLBUNTvxX3?= =?us-ascii?Q?q5idvdjFqxxdR47iUSG6ZzuHzujAjkukJTg1EDffllXoy+Ntp/3N06KITPR7?= =?us-ascii?Q?DSl5ec9o4X8IU+jNl01yCGS8s1qMPZwZxPbQIORKI/f7iRmjOLnVk2H5BwHw?= =?us-ascii?Q?3BxwIwvHS1EXKxrC1IbcY7OR8yJLUamABaMSaoAQc5U6piFHo/RFiXnX1/9m?= =?us-ascii?Q?xsff0Jvnys3/vK0nbdcQq6wbMZVm399dWmOQAr7znDq2aR7g90IPhOZjuMw9?= =?us-ascii?Q?vDn+/wPyghe/0zQ3g6fxBBvKQdjlzG03ZgKr4FESbHxLZYBtYuX8rSNAnz2V?= =?us-ascii?Q?z06dQukNIe5rwv+Q5C420JQ3u3LX08Jo7Ah86f6A/Mhj0IfSUx2Wrf/Abe71?= =?us-ascii?Q?jENlC3NKlacw5814DbKZMSx9GuES342k9vi0S/YddTBiUFH7AP9wT/pZFShm?= =?us-ascii?Q?YWnlp6RT6SKkEf0ub53ZbMJoqS5xXfGZzDa9Ow0HFdJ043eVzqJwz2ThLxGs?= =?us-ascii?Q?KxOVgDsjcKsh/O5Z/FbEjslH9wQ8VjC+/FZyb1xce08XxEZaKONsiIJNVa6X?= =?us-ascii?Q?DSZxtbsAKOYPT0WiR+7+X2YzYofsJqy8uRJwMIl9DGYa+DQJGhjzC97aIaNf?= =?us-ascii?Q?3OyuGx9EtZ06jsVSgctLsh/ydQ+cXCN1NbGzA8mfgtxKE2u0lofUhc06XVHD?= =?us-ascii?Q?I9zwjV1/d3ZHv3BMssVt1iHZWdnXPBXP711ppHaio4AK8mT518KsSjm9PSfu?= =?us-ascii?Q?6YGSWXWblGWGXt4EBCrGDEHohP62Og7ZVMIALe47U6hFbvYmGdB8acixJI9y?= =?us-ascii?Q?6Hn9PRgCBCB1S2/aZcD20FEcRHOrQYfE3ZMMcweaBRYoixoSELV1Eb62jzCd?= =?us-ascii?Q?crDTnhuL8O4xHefggLUuK/bk5s6MCdD4syvVs0NjGWXebAgjdcx7pzX9/36J?= =?us-ascii?Q?6bEmQntNifBulLUOEcZuKB2UGYOuy0/d8DBy00XAinns0v5HNhjkiJsNIBEs?= =?us-ascii?Q?q7n6NZi5ceKSAUatHvRssY+FNUH8ms5SiUSRYDh2FhaQ8HffXDpvCmIFwmNz?= =?us-ascii?Q?CiM1bc2GV47WFVy++7hboEK+/TVu0blsaKLM12MJAryz++2AmPcUfdfheQ8L?= =?us-ascii?Q?cx1ofKN5XiO5ARP/8ctyAXFHnZoa6sHv8ancwgwE+JEBdvjqD+EkH7JKSO50?= =?us-ascii?Q?vM5OsGc+8u9vUe28oiJiXa5mIs+oBhQMq1eUNB3/TlmErVu7S7t3JZDo7gPU?= =?us-ascii?Q?1al/yrKLndPWNJ1OjY+HOFYEd+BaLFlCK/cH8DO6so2rbpy0/oCrgqBOU1OY?= =?us-ascii?Q?B2b2URpBNvCzljVC/gz9Ovq/ZujDIapRwkFTtimiL3jRHcLknloRSPIgWMt0?= =?us-ascii?Q?jy3rWJf5FvKXSkLkBp+bdyNmn+IRi7Lr6plDRJ/xYukIVROE7XAuj0yfwCf3?= =?us-ascii?Q?0RHkYcI3TZmFGGcY1tw5T9KiTgKqHdKv8o348MV68oEEyC2SluaNEOi6g4zN?= =?us-ascii?Q?sPdpVvZLJylhYCuDJ2k=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:27.9966 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 73fe5333-decc-4f2d-3f97-08de0a65c116 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7292 Content-Type: text/plain; charset="utf-8" Add function to reset GDS mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 112553058ccc..e765ac0b9240 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1182,6 +1182,18 @@ static void __init gds_apply_mitigation(void) pr_info("%s\n", gds_strings[gds_mitigation]); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void gds_reset_mitigation(void) +{ + /* To cause the MSR bit to be cleared. */ + gds_mitigation =3D GDS_MITIGATION_OFF; + if (x86_arch_cap_msr & ARCH_CAP_GDS_CTRL) + update_gds_msr(); + gds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_GDS) ? + GDS_MITIGATION_AUTO : GDS_MITIGATION_OFF; +} +#endif + static int __init gds_parse_cmdline(char *str) { if (!str) @@ -3941,5 +3953,6 @@ void arch_cpu_reset_mitigations(void) mmio_reset_mitigation(); srbds_reset_mitigation(); srso_reset_mitigation(); + gds_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012006.outbound.protection.outlook.com [52.101.43.6]) (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 3E383308F35 for ; Mon, 13 Oct 2025 14:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366138; cv=fail; b=tFXa+kW+8ZbZkSQn681Igv95axAoXFbgBmqYC4coJplKL6/1ND0F6LhGlzNkSnPYbBaRlXlsTIugRMzT7OeWLC8znhfsOkOZRF3ztl8nX7y42rPLoKbl25IeZ1U/revkcUaotkZMZBiaf0SMyQT15ImaYlPVVmf3mDXqsd1MmbE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366138; c=relaxed/simple; bh=qmCIiyjlfwYDB0zXeZF2sZGz0LyarSst9JTzQ/E6zGA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X3iWJq+0R7uWNP6bblUqWgjeGwaGb+qmvMijB3cqpi70MFL8nV5Pum41Fkcg5c2aA2ATSSMzuWfYoIrHl114bRZIVBzWX1eIbLHQNOr5QnC9k8Z64aTAsqjwKJyETV2A4vS0od4v45IXO5ZOdfyTAkVXplfPfPKVUjN349MVL+I= 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=SxPYztU3; arc=fail smtp.client-ip=52.101.43.6 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="SxPYztU3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k+Leq4TObb8khMF5tNVWoKAEFBsf7qcLiFXZw1C54Tg1ckfaFMakho/IT86f3Ax4i2xUTZDRdbBiz2MIHdLS5k5lyLr35GwmG35V9lDwHBQ5ac86EecewMG4D+zvqnhdjhTsJ8iOtwRBNsr/8c3yKw7YUe70Iy8surYdUx/tEbQ9b9DlUXT7Ej5dQVUMuRp7R9PHxBTNVnQqfANeJ+2ZXe9aBdm0A7MtrTv5DtRkcOJAyLYdGUuCN6gkkA3bVYbPh9C3e1kO3nC7+h6st1eiQculpGFxNeHJts9mi1ouRZdJ+K1mVnDBI7q03sZv7O9YYdX7DrMntIkz+gvhlIhy9A== 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=3d7w5aI9tEpil39zlTImya5qz0ERv6O9ek9spIJb6CA=; b=F4UXxULCJF+4zGA09UZsL4fx0nJGj5cNl7GGYFeenDsUCxP/jUEJNFTwmSdbPP+iJT9bMxiPG6rKJrXBr/+HKeAj2fvCLwJRy9HZbMB4L6fwRV3qSpZrhiFz0PNQh30BgQbxAElJrlGtAzKmi9UE2FxeVdtf+TH/02tlkFTBRW0pkoEo1PijQKxeI2/QlV0sLg+N19Rl5CW1g8x+9KH52p0pX4sRC9B1dNBWqS1NttQrY69/aYPhFieEoSbwTIb+/6vpRUsKV4Smgp7o2AoxnAGCp99Bsk7/L7N5EEy6oxvm74KLaCDYnU/aOQk7EuBnP2pj/By4qpzZfCZTbd2VAw== 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=3d7w5aI9tEpil39zlTImya5qz0ERv6O9ek9spIJb6CA=; b=SxPYztU32SmnnKdT7h9WjLo+7m1SEreB6yaGaY+E/RGn7aZJ/1LKRZtdeFTnBrOS//4hYvR7Lo2oaa0Tk5/Y5wTx6In9gO7KnfrzmTA6O+kqftrSiwoZ7A54aGDbfcBQYZ9I0sJO1Ya7CcSY4F32Qp1DqAMASB4VpOkL2Qr3Fw4= Received: from PH8PR02CA0040.namprd02.prod.outlook.com (2603:10b6:510:2da::17) by IA1PR12MB7544.namprd12.prod.outlook.com (2603:10b6:208:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:30 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::41) by PH8PR02CA0040.outlook.office365.com (2603:10b6:510:2da::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:29 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:27 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 15/56] x86/bugs: Reset BHI mitigations Date: Mon, 13 Oct 2025 09:34:03 -0500 Message-ID: <20251013143444.3999-16-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|IA1PR12MB7544:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a2ec72c-5b64-4c90-0490-08de0a65c22d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A8LdQkFpY7kkHIr94r+OyBugyTOR+mr6iOrzJ8mmd/9k/uhgm/SQHwJ5UYp+?= =?us-ascii?Q?00uQ8DZiv5xm48lhKQa2h2VbTVhYe6cc7XLIOGHzPKhk11pT0tvHBi2R+a80?= =?us-ascii?Q?oAGLOUXKuwWoCbga/IN3wCaIszGU+0BGUq3t8VqWKbM28LccPPCTzBIoGdVd?= =?us-ascii?Q?jvWl+dGlaGBa7NlPVP+j2KNQ+ZNOH6zMkXsbX6pX+Z5z1tC88P4trIehFgdd?= =?us-ascii?Q?iPkqp2mxqEcLD2Kv2Y9D7wVRwObcnwLc/wbINxjpyKzuWtaWj1uDj5NJ4U7s?= =?us-ascii?Q?wIEjGU615PbzKdczNeF9PGbat6ZWLIJn986dgVDUgCnErZUIC/IW7baD0zhJ?= =?us-ascii?Q?Xd86IlMoChrJi6BtroM8Dr22ZfcXhkl/V5QukvKuEyWYkoYxep2wdX9Qi2Bo?= =?us-ascii?Q?+3UeDx3/ZM59nTfOcxfl2ikhFR+3UuoSLbFfJ6S9EfpFQvc6Fi6ycmVqSYQH?= =?us-ascii?Q?TJ5GzNHOk/SZ1HdMd16pMhpcLkj6ibqCj1KvTgH+AYQX59RF4JS6HFgSXxNQ?= =?us-ascii?Q?ot3kHpLwzVff8JfAWTMiYNDAJANAAlEyHW2qYcn2Jas1vntxnLnYycPXC9GR?= =?us-ascii?Q?5ovS7aKaGubReE7AzaGraqPwPvegbMnBAI3rNo4/UrmhRm78N29VWBvZEGgI?= =?us-ascii?Q?8cilna4bTUxYYYtDJn8Wj2LXDcWzUKWmsyVGvjJkH9FBtXQdqFFxDA0dBhrj?= =?us-ascii?Q?6OlsC2NMoFg0FPc69U2h3yNZfb9jgmg8JFJAqHZlozCeiI74wooYscFUl8Ch?= =?us-ascii?Q?1IZ1n4ucb4xXWpbjnKns+xbcsi5cuLyJu4S/zVHYj2OTdN67VRV4l07/AcJO?= =?us-ascii?Q?jIqw9Pi+HXIkACFqYX9GlEdlUS8eA9nWlWdOrnYJpiuvYleLaAEkvdvoJUzC?= =?us-ascii?Q?9+Jud32t6TCr6JZIDd9QGlPElyI0wTmJbOeLy5VnEQl0HLuWmQW08gI+nZGW?= =?us-ascii?Q?XRoUZ1MM1dDfUL88d/czT9bAGFOuDfTCFBaPKBJX2JuUkYe6FvO41Dyl514S?= =?us-ascii?Q?1ZsrvRoYr9QDlrjRkdhjkOT69kIg40KQKPCDeqw5xHmpW/L3cX3KPuHmGNVN?= =?us-ascii?Q?fnSSSgsfiS2AMYWsB8xYZHaTQwy+LqzrlC31RkSNUDBNYb7hVA+hatJpdHXM?= =?us-ascii?Q?sfyqWMMGg1KXfKJmHz4fmFDyU5GkReO+y2iyPzD0NApZeW5DGyNMO4CSeEgz?= =?us-ascii?Q?Q7rUdhG0rZzl4lk+KXBuM4KqFdUSbK5eFro2QvJp0NCBUyP6NPVN08iDKKhH?= =?us-ascii?Q?PlJmfCYvb87F5OSEMHVmIaDJ1fAygzT0MA8Rnnezs+QVJGyMfrrrIgSofQz3?= =?us-ascii?Q?12OgfWmopbGlVn+z3bFe3En5M4RIHWmpL43MA1s32qXzuVEsYdGlM0NfgjCX?= =?us-ascii?Q?xL/63V6I/cFSwIonXnse8azV9uOPT5XsAadV/KY9WJJ3eCzgJ9zGakI9lm+D?= =?us-ascii?Q?HhkVdY/3icnlnmjcIuiBlZ9P3WJHWbK+pcf2WaQv4hOUGchGEXJNQW9sNTF6?= =?us-ascii?Q?JVzrEe1ezv7I9DeRVOkXRD22cSQdCtx/mhU34lr2mgSGo3PzXF6ET7opJw?= =?us-ascii?Q?=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:29.8238 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2a2ec72c-5b64-4c90-0490-08de0a65c22d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7544 Content-Type: text/plain; charset="utf-8" Add function to reset BHI mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index e765ac0b9240..67561e5c2154 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2360,6 +2360,17 @@ static void __init bhi_apply_mitigation(void) setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_VMEXIT); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void bhi_reset_mitigation(void) +{ + /* RRSBA already cleared in spectre_v2_reset_mitigation() */ + setup_clear_cpu_cap(X86_FEATURE_CLEAR_BHB_VMEXIT); + setup_clear_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP); + bhi_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_BHI) ? + BHI_MITIGATION_AUTO : BHI_MITIGATION_OFF; +} +#endif + static void __init spectre_v2_select_mitigation(void) { if ((spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_RETPOLINE || @@ -3954,5 +3965,6 @@ void arch_cpu_reset_mitigations(void) srbds_reset_mitigation(); srso_reset_mitigation(); gds_reset_mitigation(); + bhi_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011011.outbound.protection.outlook.com [40.107.208.11]) (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 D59E830B529 for ; Mon, 13 Oct 2025 14:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366140; cv=fail; b=otdDP1vYTXe1gw4JivjxNs54sUhcP8xBNxUuO117MVurZqab91+8hYuu0RUPSiqhhrP2dSVcTEMqYQVFAkcyL9fHbqMi0zcK5UU49yvUhPBOZ4DtfhqtjG5QrJbBMPw3CyCoYndqX8pljo+2LlJWgHgXjD0Pp+Pp4LU2Vg7xmSA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366140; c=relaxed/simple; bh=J7RUu4OlbexnLJJ7j74UfcXk2qtS4z0F2YInfNn9Cbg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=U56Jh5rChLDr/qgzojK3NI1PpwE+8Ofz3ioPNy9a2EBcsPOzD4sHiKhOqcdPdplzEuSjouN/045uqhNsR8RvIfsnxYNMwO5pG8MDz74QVvKoneBRoaoLZKkkdPVBySPjfbtkGe8ukGzjYGh0QZ2So1TZSKK037DRkG17wUTt8Wg= 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=VevczCbS; arc=fail smtp.client-ip=40.107.208.11 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="VevczCbS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t6vMSOEqsWTa+CdunSBPbRS+08uW9FyUR10AJyxf469c4qW7QyK4qi2gOBTWa6YzYJTOCUNAMA2fZa/0265jgFZPsdlpO6jK7dfJgCg6QccvOA0FXAkDGp8/ABKOgDikWI0mmaxKFfbuiZH0VIeV8GgytHbHeo882UmR28AtbFWUuD5rmxbpWitz00a6I89hT2Ic0pwtVwaQ1tklZLjuTX29htvblukSAOZo5Dt/uZVoNt5vQfQTP5qidDBo/sBRa4NQooRpW9+8nx2FviEVoyf8C1gfF1wKfjvS0CxoCS9vwo3UQEsaz2naZ1nQWttTN9SwHojcWQML+aP61Q9Img== 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=RXkfqc+kyf8nXY7RtEJsI6fI8upHKGcLy4ur9yDjm8E=; b=KsMYLUkD8tO6U68j4ZxspwPvk9U4IuMk+k5dOlmVglGCgK4ZVG+aFFSF5uIWNdyKVe7GTUcWJfhYjPMWSsygk4h/KsoiiMk0qRr4Pi2Whsocw+3GMzkyb8+iD1XiwiMRxzcaZHDRyMKIV01gZZwXDTC/0K4VDeapkv4ATi1qFtX8KB1fnh05JzQVsjGPqiMKETTJxMfQZUYxkFWidIo8z15qCvGAtYURiLzad1YlH45e3R+tj2IHj/u3c6KckVbc/tPYdYVRTYLaJw374P1O6K2+u9F0WFZ9vn4qx6XR+39+D7vojnSD59yr7wPyacQOaQAiSGtm5tqxP73FceLobQ== 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=RXkfqc+kyf8nXY7RtEJsI6fI8upHKGcLy4ur9yDjm8E=; b=VevczCbSqkr7yxCzbVXhNKFjhqsZwCUrJWM2LLMfhhcNqVwUsGVpjm0vN7yQHKITRiuJtjYWp9/Arc8qI7BVBsfOMyJImh/Gv/1wisUAbCwZYRlQBRqvopPbCw7Qibe5sKW/H/03d2Jck1R+dOBzX17XRxs2GcD6nj6pOSeMOk0= Received: from BYAPR08CA0071.namprd08.prod.outlook.com (2603:10b6:a03:117::48) by SJ2PR12MB7920.namprd12.prod.outlook.com (2603:10b6:a03:4c6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:30 +0000 Received: from MWH0EPF000989EA.namprd02.prod.outlook.com (2603:10b6:a03:117:cafe::56) by BYAPR08CA0071.outlook.office365.com (2603:10b6:a03:117::48) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:30 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:28 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 16/56] x86/bugs: Reset ITS mitigation Date: Mon, 13 Oct 2025 09:34:04 -0500 Message-ID: <20251013143444.3999-17-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|SJ2PR12MB7920:EE_ X-MS-Office365-Filtering-Correlation-Id: 95684c35-85b9-4335-e3db-08de0a65c25f 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?DNVc2Elt59kZiIO+nHcE3gre94ZWEBDctB6OVtSFdzlYE1MxQtSfLlKnQTC+?= =?us-ascii?Q?qG28A/x7rxkrwWru9T/S82T/USOeGEdLShlBQRDbvo5Dx9qBaoqlg+NOcO8S?= =?us-ascii?Q?DdIpKAohUCF/h3SLYYqGviQldp/SxuCQT+K3PTj00qYNvSUNwL0u9OIk56mw?= =?us-ascii?Q?5KfRKCayREKV+bcQYyWOQnvZgEYsc8Z6etlZ7Q/vBN3HCPGfhbt7s8HWD6DV?= =?us-ascii?Q?ySynwVC10LkKci6LB3m/zMy2hS0MqCSNilQ21vFM7nKxUEM99fstaCX7T7KD?= =?us-ascii?Q?7ge6oYLxcxFx/3u3Y0Apod6XHt72bAzgWnV2E9ZZWFHDIGm5tuUcvIPww/BV?= =?us-ascii?Q?Ra2mtHx/UFtNgK8VI9mUN1uy2+S6BOJtD+kn/RWljgWSZLXalJbiN2hj1gMp?= =?us-ascii?Q?AvvKL+sc1/pCU7TmX/+05Xj5eZGI2Q7WzeueStBoxXUpe6pBX7XtM5+GVKqo?= =?us-ascii?Q?SmW1W2OaXkydIJsj5DhyYrvGuceWr0MAgbCdN2NdMfry/+uH/DhHqkWzLj5v?= =?us-ascii?Q?HQQj+WT0SvVybD4PqlTG7QOpErZtb0zO9I4d53TmBbOMRVZ0m7Q5741Bt+/U?= =?us-ascii?Q?fvvku5jR6PuS6LRs2kJ9kB5uTbSrXsxtkTamzF0gx69lsJxFjuYl/yOBRGjr?= =?us-ascii?Q?nGL07lPgtD40kDEpUXaC9jPy3wO6XCiVESKkjwxVXlZ90vhhBikNsAxRfCnT?= =?us-ascii?Q?6RPoJweUKwwyIVMrY/z67k1nuDYy7gF7VsQEkGG5BJeyHLWshwGnv10v7thB?= =?us-ascii?Q?UrvaWXF0pfsxJa0P+Qo7UIKPF328bCrRP+CGvVFPQ9TzxfYNlOtzSfH9YqKr?= =?us-ascii?Q?2yrd0ZfQHFbEBjdkCcYjAmIH6I8fV5hpwiz7R1B5Uk5OaPWoUWUFxEjOvMF/?= =?us-ascii?Q?bvkUma6CILuZHa9lBCfXlZbLp2bRpiRu49xY+oXXR5qTEa/YyXVFfrA6hT7o?= =?us-ascii?Q?s8ljGprGmgiUg1RV/oRMmETGzSUrRtf5F8NaiLm/MU032hQAbJRopm+jgT4n?= =?us-ascii?Q?rfEKZKb5iHEPFnO0UMmc7/nOusoUio5ebLqAH78etRUfjEkPZQuX2iHCqM/8?= =?us-ascii?Q?EAcxiIfmqId7qKjE9t2TdANDJ9uBJsTZWgs3ehyLYCdPaw0/u2ffNbuNatOC?= =?us-ascii?Q?+u6rGoloEVTfmnvvaAaUsZ+sC5IgUp3ulo667C1LwzAgGazi3N67UU8uzBCI?= =?us-ascii?Q?afdXcXlP0mQ8iztYlG5XF5V/4/rGpyeeo1RpZgZ5tcDHpAbSHMGnXubfFqKC?= =?us-ascii?Q?IolMXz2CCeMDxN3AvvjXwr9XQh5ZuKe4Na7mGxw2rpHPLg2bAP/PyFt2+Jp/?= =?us-ascii?Q?fE3Cko0T7Blrp8+TuQsphVLKMFokyQDmzYTB178D3NzUEf/5/PiXhjLZ5n3l?= =?us-ascii?Q?R77Rs0AKR3WO8Qy0b/s2q4fLk/O9QT8oeev/F04O5XacVLAHjReYqxembDyY?= =?us-ascii?Q?PyTmZK7bLGXUB6aEbSlMcS/ggG7Ye5Rutxptd8v+nO3bSAWBKHubVQoyU2/L?= =?us-ascii?Q?3BhVHeOvV00H5SD9p2Ds2YcfAH+8clJbVYfRYMLeiPMolK44aYxLqmXqi4n7?= =?us-ascii?Q?ac9N9Dab5lRqr7e76X8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:30.0822 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 95684c35-85b9-4335-e3db-08de0a65c25f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EA.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7920 Content-Type: text/plain; charset="utf-8" Add function to reset ITS mitigation back to boot-time default. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 67561e5c2154..bf5de097e1a9 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1744,6 +1744,17 @@ static void __init its_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void its_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_INDIRECT_THUNK_ITS); + setup_clear_cpu_cap(X86_FEATURE_RETHUNK); + x86_return_thunk =3D __x86_return_thunk; + its_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_ITS) ? + ITS_MITIGATION_AUTO : ITS_MITIGATION_OFF; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) "Transient Scheduler Attacks: " fmt =20 @@ -3966,5 +3977,6 @@ void arch_cpu_reset_mitigations(void) srso_reset_mitigation(); gds_reset_mitigation(); bhi_reset_mitigation(); + its_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012033.outbound.protection.outlook.com [52.101.53.33]) (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 B385530B510 for ; Mon, 13 Oct 2025 14:35:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366136; cv=fail; b=oQnhGaNonYujtDLKAeBq7yUs68kESEO2FQmqUWdDGY5LA1QgeJYsH6k4vLL3WPrBu/qadQcapZy/vY8mCUNmfug5xev4puu9WUudo4PQZQE9usGv4K7EAuaAagb5XYjDseBxhLONUq+/Eme3W+rO/hGpWvpmOIv0mZhX8gSVvwg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366136; c=relaxed/simple; bh=sEtvcU0DRCOSwuleoGkjushw2H01oufeGvUZRSgilw0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dJ8+9rstECTYhPWnKfBmY++EXAMAEuc7jV7hmQBrXCmyGzT9rdYNSCn7nB04YNSYsy9z07jLau12XPMFGSFstRRXcosdItVcx608kXH69yvZok6H6KoIP8oTrw770Lv0xm2t2QOK/D4f681H5J70DyCK9gbc/Al4wLJqcF/fjE4= 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=stZ+7qGU; arc=fail smtp.client-ip=52.101.53.33 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="stZ+7qGU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yAEm4/bllog+vM4INsM/Aebg+PKb8HRsGQp5aez7exXxeK4dU98ZEsWtsdM99sOmSoiXrux1bEg/UApZSNUIPZfbGJ//Cg8apVRJcH4pcMbqbMWaedZVGJF6QWmrIgwtlmB5aclZzueJCA2iBPgUKBOsxiRKdfjh4cC+waGFcAVl23WH5eEvWOz/MS/4QqOF4czOAd7MDZEgGeyx1HtnjA3cghL7pueu2yUqWn73OcrcHr1fsMutFmZn3knRk2CtnlwjBsx1+WWYZObXL2YWCBf1RL0HujRCAvkcJldaOLxeUsNnSF5ADfjLXLC7kQVOxQqyATLLCj60KYLtr9HcWQ== 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=w/Cfn6toZoXSamzuDTopfmh8rqEUbQ+HmNa4nHNLHmo=; b=iaIEOH+m6IFN2+1ii+XiJrLjYiBZwhT2/KCXOsH97UzP9jShEX967z94Chxvl4rWS8krJwxlH13IOYiXBi4QxBnRBrLOcAu34byzZO+yko9rX1IE+MeG+ROTBBH+uhU+dg9BF31lu9aJKE+b0c6nJVc4qlOV4EzGpSacnYo7YXfPDRQOst2Zcs4czHYKlA6KqIesQGCBvY4VAtF8CBdVOL6ATrEKg3sNUCxyfqD2XgW/7+l0qjMjTPsb3b04k/XiljV+okkv0Id5IgmMlrTnJUmiOgKLGrY1G9cDJBa/urLXpnWXoFCZHEnCGd2tgAGV8toTIviqtOE7WE/nKlEYpg== 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=w/Cfn6toZoXSamzuDTopfmh8rqEUbQ+HmNa4nHNLHmo=; b=stZ+7qGUBOAG7hELBe8WazuS1oqEDb77BJQWadvzWT4ANO4m/WyLPs0mcHbeiQ+uGSZL7Vx+x8Wy+cPePwcnVG6iVSUDIK32J9CTv8+2Sxx2bqySPmi+K8JafJvsSQ8ytZuqsdwBMnhSsDq25wcFQ1RAPB3wamvRe/ArTmDHjT0= Received: from PH8PR02CA0051.namprd02.prod.outlook.com (2603:10b6:510:2da::21) by MW4PR12MB7285.namprd12.prod.outlook.com (2603:10b6:303:22e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:31 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:510:2da:cafe::d6) by PH8PR02CA0051.outlook.office365.com (2603:10b6:510:2da::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:30 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:29 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 17/56] x86/bugs: Reset TSA mitigations Date: Mon, 13 Oct 2025 09:34:05 -0500 Message-ID: <20251013143444.3999-18-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|MW4PR12MB7285:EE_ X-MS-Office365-Filtering-Correlation-Id: f38cba48-8fd7-4729-95d6-08de0a65c2ae 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?7BaIywARw9WZSPsKqrpB4PKGH0No8dgZGy7hUgS+Cm5vTdWA6HdLPDJ7saFF?= =?us-ascii?Q?tkhpfhyY+DMugSSFmu7WUqPFiVT9BT6G0nltnOWZP3vQypzLiSJxiVensIx7?= =?us-ascii?Q?PMrFq/Sza948sWTCPfsixQedavdO7fyxJdME0kEsPTV+jq9+gPl4Y/e5fy6O?= =?us-ascii?Q?InZrUcOS1kpWlVKg7EOIHqNZbjyXxSOCuz9mDg/pmTYZ2JOo/1Fb/c/6Ovzv?= =?us-ascii?Q?uMFlgdhuKNyVn+fKPOnrAPyEw8SqnKnqdc9UufPz7gkK8EgW05ljkoDGrteZ?= =?us-ascii?Q?khedh6qkaQqVxOdO6gPHC0cOIqgzzJwa8n+sSvMokA7q3eBPW4WO3Pdsb1f+?= =?us-ascii?Q?+Nzrr8n/UBRygi+3SJwZgQHGpveYLAgJMqespbDB20pzKCDjxIR4ByrnSk76?= =?us-ascii?Q?fjKWz3BEYeLSNcuT32MTh94sfehe4UHbf6oVumGKt6d3ClWhXqHx7yk/TjaJ?= =?us-ascii?Q?AvfIc5CYvw/KoXCEEOIhnwt5jcIjNoyNOyFeJ+ipUIejqyieL47DJgT7aQyN?= =?us-ascii?Q?MvNgCA4rkkNf2Kn51HoTa0svNKi1pbhR4z8xK3GaBRFa4RuWvY3jLfdVLZHs?= =?us-ascii?Q?8nb/IkCvrZdMnUPMDfhwe3UAvQG511u2q9UEPM1ieIzmiFL6LRi1YxOST+NC?= =?us-ascii?Q?7sgV03NDsdnKoBh+m5NvEnFYxl25faqEKdGtABE7y4sYkQozjrvS6JjvwTNQ?= =?us-ascii?Q?lExQORIHAx5GWbkxpGHOr0+jQ00p5CND1drjQsbGIzQLrm7fncj4DQJHgxoD?= =?us-ascii?Q?+NbxQZ0CFtyuUmu4bDVmkqGR6RhWXhkz/dHCF5Ko3cfu2FxrG92Srk15Cock?= =?us-ascii?Q?9x6svehpqH/Bn7TLRw0znNsbZjQ/sK0LsQIrMonFt3OuJH+CjQrkwSBAG2+W?= =?us-ascii?Q?/UyBnh0ZSDPyoqYCzdhC/Gn75CyYlPPctvK+LIpwOGH6QttM3ybR/zRGSCWv?= =?us-ascii?Q?Na2xxGdiYuP5CZKnb4xWd1zgeiP4ekPGe4xrxfOdZgpcALQeIjHJBFzJtc+S?= =?us-ascii?Q?4IrDW+7S+p+b6JoBY46/7LomeKKI4PHMRzjb4H47vEWOWWencOnGKA9XcvyF?= =?us-ascii?Q?XVItGJHw103KYcFdnSJKfCf4SBXUfY11kuU5ei7686A/Y0t2SLfGe6NgeBMx?= =?us-ascii?Q?nRmr9Sedds8ynaxJyi6MKj6nu9Jd9+p3KJvLYr3xeRaqwIbod+zBvgLmmlC0?= =?us-ascii?Q?fNx0JR66gLUi4+XxNOyh2CixYMvYYB8879Vo/vl9TZHAi/4K/dxgwKnmPj2z?= =?us-ascii?Q?GBPBRSOcAtzUZmp67b3Wwc0azsl0fw1W7+/XiR8tM/l41P20hg9xHq87XfAp?= =?us-ascii?Q?16XHqHZCA3D2gRkdnle4WH67kKlftrRNo8z92Uo+LYdywFNcxdeC/FzArw71?= =?us-ascii?Q?MaNG51VPf0+w3LAYgL8ywKUHb2jIQC3iajz5bJY+a+vJY6CtcxIvQK/ul/Az?= =?us-ascii?Q?ODbDmhZjQBNBp5qXo7qZ8kWvDAeWfXn5seaXay/soTZBLU3Eexl/uqOgEwLa?= =?us-ascii?Q?3K06fYyuUrTuMKZWaCWRlaqk3Lrn8gRgptjvWXXGXVTsugnQP8qrNN4LzxSo?= =?us-ascii?Q?VNZV9aUBaPX2RJ1VlhM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:30.6718 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f38cba48-8fd7-4729-95d6-08de0a65c2ae X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7285 Content-Type: text/plain; charset="utf-8" Add function to reset TSA mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index bf5de097e1a9..6a3e079a85fc 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1858,6 +1858,17 @@ static void __init tsa_apply_mitigation(void) } } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void tsa_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + setup_clear_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF_VM); + static_branch_disable(&cpu_buf_idle_clear); + tsa_mitigation =3D + IS_ENABLED(CONFIG_MITIGATION_TSA) ? TSA_MITIGATION_AUTO : TSA_MITIGATION= _NONE; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) "Spectre V2 : " fmt =20 @@ -3978,5 +3989,6 @@ void arch_cpu_reset_mitigations(void) gds_reset_mitigation(); bhi_reset_mitigation(); its_reset_mitigation(); + tsa_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011027.outbound.protection.outlook.com [40.93.194.27]) (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 3E78230AD1C for ; Mon, 13 Oct 2025 14:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366136; cv=fail; b=g9ZzOgbM1SBC9h9tNuX2qGnd/4dzzTRad8gzCg23SMaPC1Io0HfSLZ1DuDfGnWU4ZbLe1oLJnr6Rd5cenCfbYtQ6EcLJJZPg49kCCFfy+Vn/+vO4tDqaHpLx5tHvub/lL06H9weqWKokA2t2DMtuC8an53JmiGA8MpYkM4x13QI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366136; c=relaxed/simple; bh=r9BRm1BMSzt84KrS+tQaphurYdhKvRHX/Gv/NLo8kzE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YPiiS3YdPsSb2tVPjI5Z2KIftYI2Un6aoRZ/ur7trkmOb3II0oHGDtUPTwydMkaEWd0bkHa5dPfl/KsmLMHb03EXUas1IN/InpP0U4jtPsgNlopUFxm34wGiaYtIkV4qUFpsnkpCSE9+0MxY7jtNSaaHSNz30byM5/wCbJE7JDY= 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=BP5v0b1C; arc=fail smtp.client-ip=40.93.194.27 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="BP5v0b1C" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Hy5+9nfnLhdVAJJ4jLK7kcuPq+0+NTrUyEfjliLX69cNV+Yq6v7EG08sCCyzHatuxZdaZTMh/EQWGZ26HaYjdWLYYvNAuW8Wl4O2IhH4xb/bPVkXNmQa6nuoVOAsf8RaJALQ5g1etPR4aU6/xu5JvN+qRghPbw2iEYyMkn7VYVgKZnNM5ZxMDYXsADwUqCyGAUH9/ejNV3pjQU0DlPY9CWl+w2mvCV+4Xc3y/c1cfgQGqBbL5D7IuPjbWUWKB4jBt0jM09FH+DAwNk+ydYax50WrYpSld357Gx/bVqqHYRr0sXjOz7Mhkw/D+C6lkS2NaR5D/eBZ2FLJLiGXycUX/w== 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=qCIUoNgS7nxFiBFQGefRAauM23ME93hGuqdFJz8ilKs=; b=jjA9UqAXwr2dGCDs9UaYUpBDy3JJTm19gv6cC2DGpym9hq0XA/3MQse6tepcSnbQn6pnX59FrxTP+gEV0v/DCpxkJtiwCNYmubLLh7MAs8zxBX8jNpwAHX+5vh2XjUcSpdUDVRkivmEJ/pjRviEln4j4qhLgQ/Ws5M8jN5CvcQ/PyI/WEgKNCE7RVtIueX5Byb2HzoCSkDOKGajaU9oZk3ej5sdeeA5N9XVJT90E9LrbSWivBNtvHP+dlRXhLk8VRH6gFLMsIfegwMa25Qd7JBNXwjH13Mz+aQ9WxQ4lPQCt6XklL/1/LU6Hj3mggjTUgAoe0QwlaqMRAEnFER0sHw== 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=qCIUoNgS7nxFiBFQGefRAauM23ME93hGuqdFJz8ilKs=; b=BP5v0b1Ct41fTTIhCXRfpw61FgHTuWn4Ez6J3qI+NNXXyfdV/987n0CDnjZMUsOgwWpugNnFGPbqJWZelmuYNSIIfONBSjjROF5MkbTU4hzkjdppikRpeKtg3hiE1OblBrPEjqrANpKZS3hGWztNJBMOt95g920BdpCQ7txT+Ns= Received: from BYAPR08CA0063.namprd08.prod.outlook.com (2603:10b6:a03:117::40) by DS4PR12MB9659.namprd12.prod.outlook.com (2603:10b6:8:27f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.10; Mon, 13 Oct 2025 14:35:31 +0000 Received: from MWH0EPF000989EA.namprd02.prod.outlook.com (2603:10b6:a03:117:cafe::82) by BYAPR08CA0063.outlook.office365.com (2603:10b6:a03:117::40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:30 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:29 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 18/56] x86/bugs: Reset VMSCAPE mitigations Date: Mon, 13 Oct 2025 09:34:06 -0500 Message-ID: <20251013143444.3999-19-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|DS4PR12MB9659:EE_ X-MS-Office365-Filtering-Correlation-Id: dfe33d88-e1d5-464b-534e-08de0a65c2cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?CtJGmmnMEe+Pg5ZFzkVCvaZoxVw6StTOQKlErV/5nr/FMo21rh/R3ZpniZO7?= =?us-ascii?Q?6DPuExinf9zgNjAnfaJRyg9g+C/aLpmSosyWiSL/G2XBAuIS8+lCNSmMZQ9S?= =?us-ascii?Q?JQZ5pWDA7ZmWdMNhXvtLyLFOSbeF69WgaMpleZxPmnfvVXvCENbqU52lyBPz?= =?us-ascii?Q?4lkZ6umF/+pEKvAeSZE5TFpo3KvbnVRous21QjRPTjf9WMsi2O/BqBfr2cwn?= =?us-ascii?Q?fpNkT4iRMosGO9hh+aBt1vCOAkFFdkTiqifxs7lMlTphw//s8eZvISJ5oNlr?= =?us-ascii?Q?4eLNp4dU4DMRJCd5IQ8b3pp3xXD+O9YjmAUt7JRJkawlHPDr7aQsoKB1bYMl?= =?us-ascii?Q?zZPojTJ+JcTlLtGFzyRXvY1R33uvJ+f7CLiaDKKOoyk3ytfs1vroMHIdVPW1?= =?us-ascii?Q?RxSVhXl1wdSsTcR4Dj/ehIvqUIbCBhne0DUJgX8z5ZRxFamq8v178T/tVwm7?= =?us-ascii?Q?tJw8qiZNveqcQ7R3rd0+1CNizzlWX3EE46wR/tpG1LxfTpmJlXrSwOfRQMDu?= =?us-ascii?Q?5pVR9woESkG+d5LZl2AOQ/S9sR7j23sS6FYN5+7AbHZQ7lakX9IWBRZwi5+D?= =?us-ascii?Q?IvyIgEhCEDkIpIwHOfQAcs2ktCkY6gTucuGUCFqsYUNuuFwUsyC811AWAzxt?= =?us-ascii?Q?I+uv9eAEPMr8OjKtCP+rwjqnd5aHs4aJDoH4e+JaEPG87z8Mgn8+EEDCGu83?= =?us-ascii?Q?/mU2q/0lgULxo7B7cox/Iq3vRqgYOo19HAv/KavxfJ+dJKgZewL9t9LTVBC1?= =?us-ascii?Q?JYEdoG7aP5tZhJ2xwhWti6t0sMU5ln6R2tRHCRJTHW+NuLMFFNQbM6YLNiom?= =?us-ascii?Q?BrlK6RYdVOrztX2HJ+MYF4Y9JrnXwmGo3teWnGzMo0q2lQxkSYfab/lt23FG?= =?us-ascii?Q?p82uBJtoE6PiCFJHYqnAcDBZDHeSAmJE6/Ku9GlBfMzbqzeS8epMZY1X5NGC?= =?us-ascii?Q?MIRjSBHLN65WWm1Dj1R6ISYvK8fwv+oypD3yr+w6RDwpxdheHBPSLL8B7Gaw?= =?us-ascii?Q?0QK2QfWIiWXRc5xatDZ7dLbE+g96zqfCYF76pQS/QBaOV3/ablDU34cCiBsg?= =?us-ascii?Q?SZJw9jcEyB7dfc6BJmtoZDqiA7UFGE2fdPkar5wvmzwAQnrw9GuKE3ODnDj5?= =?us-ascii?Q?7t1Cox7NPBiHgQsiS4NyKo8hKuXKYslmvC03tCbNv1JudELcKTQwQgRpTUUk?= =?us-ascii?Q?GCzZO+wLpBclxPigaDZ2NdoVycFDqjKk5cQ6QINZsMF/GuvbKUd9nx9h5ggN?= =?us-ascii?Q?1sUwIHKsmQOGnOIiomRYDooIlMoe2pbhnIbkecQwfjvlDIT1LHM4SkdlZnoS?= =?us-ascii?Q?B0rVj613Qht9mRrAsSHcHocifKpAyijdjhKubKqgAnsEaSlz5SU9ZXmaPhOQ?= =?us-ascii?Q?F/uskBydn5t5YCC6UMdoejIO9f720uO01PsSHIRjKJIiLH5yxPtmJd8jVpy5?= =?us-ascii?Q?504P1ZCVR2wYEOD9TUxmWBJh2JWZIKsoG9yNgrk/R0RKihVnjAQ3PufBGWfI?= =?us-ascii?Q?hTeGhW0zR+HFUfa7OjAoWoA0C8lXqqHVbc9iyTd5OYy2IC/0SNbO3b/Q69/S?= =?us-ascii?Q?9DQeT32zmkeSalsFVFU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:30.7887 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dfe33d88-e1d5-464b-534e-08de0a65c2cc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EA.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9659 Content-Type: text/plain; charset="utf-8" Add function to reset VMSCAPE mitigations back to their boot-time defaults. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 6a3e079a85fc..fcb1337026f1 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -3446,6 +3446,15 @@ static void __init vmscape_apply_mitigation(void) setup_force_cpu_cap(X86_FEATURE_IBPB_EXIT_TO_USER); } =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void vmscape_reset_mitigation(void) +{ + setup_clear_cpu_cap(X86_FEATURE_IBPB_EXIT_TO_USER); + vmscape_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_VMSCAPE) ? + VMSCAPE_MITIGATION_AUTO : VMSCAPE_MITIGATION_NONE; +} +#endif + #undef pr_fmt #define pr_fmt(fmt) fmt =20 @@ -3990,5 +3999,6 @@ void arch_cpu_reset_mitigations(void) bhi_reset_mitigation(); its_reset_mitigation(); tsa_reset_mitigation(); + vmscape_reset_mitigation(); } #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011068.outbound.protection.outlook.com [40.107.208.68]) (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 620E530B51D for ; Mon, 13 Oct 2025 14:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366137; cv=fail; b=Hirv7mlhXAtlbrvqfaLULpXMcu+oZlnw/5KX1l+SLnjicngbUOsZcxWgyz9JH4+MslLp1yrvbsidxGW0zb85zHLXVEFweHHdn+9iSeS9uT/xQL+67YnWGwdPTax2VuC3fdpqf0y2lmw4WKbUFXLRqPvNb0lZGEsBCg/SKi/EhBQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366137; c=relaxed/simple; bh=m+W1nblgONXW5TDO4x17r/JdbcADz6yNzoqBRkE4D2o=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=g+19vQFS5QfdVv6gHAuvkN4HW3Q0b3f1fn7Go3NEp7XJ4x0V+cjTdhmFL9W+a9UTkkYbr8s5d5USa6eb5szG2HAOblFv1VE88DyDwNtkh/nRL2b9kddxySU0IDk6O2iDBRu+1Tx0jMba4SgGQ/NSZmf3DNYRpJYewEZi7DbN+hU= 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=Fsa6Bm7H; arc=fail smtp.client-ip=40.107.208.68 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="Fsa6Bm7H" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rz8v/WviUaEG8P0dXddvI1auLWlSBemuGDO9ZoS9i9pG15iNv/7nGDQg6V9eiJIoFAR1ITWX9gyHJ/gIL6L4SZg7iJuUU51GNBvWMEYcLWAgTNEBkiYm8ecfK4+8SFmhtEf42iEhScPW29jQoYoBawSlWkPYuseCY87mgWAB2ZccNpJIHusncjnKUcx7JPeQZWk1kGwqlHRfRCbhY3102S40KpBYx5emWjPm8vwcJ5Mk9qnCSy+ZVAFRR88DouiaI2ZXCX+IbV14Aw+ibtqjBufzY7ACFD7BcrCy/TWD3pLBmz0G29wuSvnjBN0l3XKisA0riBwQeljh1OYgiRGfQQ== 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=yJTdX/90J/Nm9TLZ+KGe1rqSSuV3El7lv7BRYTuuosg=; b=Bz0gcMHXiIe+Zs5ROlG6avj+s9xotJg8Qgq4xqm5djoxcZWWFtb1lOWPqjyHDz9L8CK5MBEBG+5KacXGcVL5Pi3QLFyzsl3dODHpChIfXmQymiMVua8P8w+GN1r9u/WnWAC1lb4Qz4hdTi07P9E+Lch7D5WSEdWdNoWitePZs1xKMK+x2S+vXH6VYT01q+5zOXmejcQtaCgvfe4joYLgNGC3kOxEdcCn2B+a5u1r9yFGQkpybXa3fm+5OSmDvc7YivDK1D2TGMbHSRjJiSx894ZDpoCJWwloly9/qGF/QBd7n6U/+enk9dmtTPeTy4phQAGROus8aytkdDHPzqgnVQ== 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=yJTdX/90J/Nm9TLZ+KGe1rqSSuV3El7lv7BRYTuuosg=; b=Fsa6Bm7HfCrA3WfZhs0gny6Xtq7V6Ojd8DJoIDR/wnLFEIwZJSMP29PkBeWzC8zaRHkhSFTltiZzrsESrpemVzfeEUn/UV/zUijHJ8kOemtUxPB17XfVWcZRmYck8upL+6wtRHhMIEbJYO2uluH+FnHiCFztGhEqu8XwsGxh+OQ= Received: from BYAPR08CA0042.namprd08.prod.outlook.com (2603:10b6:a03:117::19) by CYXPR12MB9388.namprd12.prod.outlook.com (2603:10b6:930:e8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:32 +0000 Received: from MWH0EPF000989EA.namprd02.prod.outlook.com (2603:10b6:a03:117:cafe::44) by BYAPR08CA0042.outlook.office365.com (2603:10b6:a03:117::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:32 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:30 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 19/56] x86/bugs: Define bugs_smt_disable() Date: Mon, 13 Oct 2025 09:34:07 -0500 Message-ID: <20251013143444.3999-20-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|CYXPR12MB9388:EE_ X-MS-Office365-Filtering-Correlation-Id: 30fb85e9-d23c-4d25-81ec-08de0a65c395 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+2GJTzSlBK3TLlpayNTd20QdGGFH3sCY93nzn/Zam54QWgedDSW0ljDArNb/?= =?us-ascii?Q?fK7yrkMXQ5UzVOLz5IDauoCLjFpADPoOBaFyGz5myMAEm0HPVWMixA7LKIqz?= =?us-ascii?Q?rSNBO7HYT0udV4xvtSOEw8IfaSm/rN2BK1xbW1obQycMj6WNgHhTltxRBJKq?= =?us-ascii?Q?Z+UXQERGHSyTmuxA02F6/OPlUdbHh4xPaejCwtsrhLG3GuGy91/g5/UUWYrP?= =?us-ascii?Q?SoWTzsTzl3SAKWOCiCptjAU1PfqRxkjRUdv/BIravyWnjK8AZU53iyXT5Sg0?= =?us-ascii?Q?YUO7CKXw4/YbUd8LbMevVnIJ01uigTPUkADWuS6I+FwoGCUNL3sF2KueP865?= =?us-ascii?Q?F20G9OpcPFGcRum8ThymgnUoxVgCa1zF3o/UIVi7/l7cUQ4USLphRVkvT5Jv?= =?us-ascii?Q?4kIFk22TCk97seA1PKvJiynyW0oUOMSDs94JGBO2NerGmxnNnIDlfPfZ66Oy?= =?us-ascii?Q?Eo+GdoooAMO7eW19ByEzchen7hIZ1ZaBk/bSV+7vbqtmpnDB28EMTdBCO704?= =?us-ascii?Q?eXexIgOajQoy32H+wTqNGEjfHFLjeaoB0V7cSP/UUe7UudoYCkHM7aK8PJq5?= =?us-ascii?Q?85Z7H409FG5+CfUvzMkaTDgDI1kxnSQMUoPANVbR8QrfNt6JoMUDMk3P1tfQ?= =?us-ascii?Q?TVzS58A8pqAFq12EMJyv9ykjzoTc7HdhDql52l+rv+gMD8Scch+ZeZAbDbVk?= =?us-ascii?Q?RzJGQXBmiPTdpyWDLbMdjPPNzygCHym7SUyBts8EB/2UKNarM8MBxmrI3Vaa?= =?us-ascii?Q?GmDBq1gbfp+vGaf174SkuYJV2MiL1OSMqWrIWwfH04Gtjv8QRHg5DHulstl5?= =?us-ascii?Q?LhZZlFcb16oaezNs0InzwxiabU+UqhlPGy5ZhJZGzknL8/jwvfbmc9L1CAW0?= =?us-ascii?Q?arIzszNxjm6rz2MX8zPIxWaEaITuLLYQ4VQDY3bULOVP5DfypQxlbnfac5kH?= =?us-ascii?Q?Qi7kf3eDx7Qd0rdp7CDRL8R31KEqeilRSFIWbTtLFkV6DLcpvZzyG2iJY1uL?= =?us-ascii?Q?0gBu1H+LjZCXy8isjS5pHdvdVuaizRlGjU0jl9FEySlrC7GnvarzNIfS9XFj?= =?us-ascii?Q?AbUsSKrXvxdSy7H4/ofeDiN3qs1CztRXghawWtwqhzRDSHDIJuy1ceZUdqta?= =?us-ascii?Q?2H8z1YI7d/ySS4bgpvUNK5DUncgA6rVIWd8HKJ1ozODkXGK6BDR6aic+U1AK?= =?us-ascii?Q?mHx87se0Yj7KP90RIgptpY3PXynsDS/o4dKjtjKq3BXHFJeFHzVMc7Y+tfYO?= =?us-ascii?Q?yCSHVxCYwpgDhZZTmMxRwI+otEmoTEFO66Z/mzwXx9ErfrO34+O9VcjloYYh?= =?us-ascii?Q?+Yu07FTZd89Czl2vuuxZe43LpfKJFKmOsxsJmwrlcnbqmDe/WadMF8uPVLuY?= =?us-ascii?Q?oSDb9Vz0ufer+7KIClKnOK15pJWZdukTprNNYG1gTAa5dP1E6XD3W1t5ck97?= =?us-ascii?Q?WshtdSvVSTW6Z75aEXpCWMduDxc+3lzqQzTJftOt8wEs2F7F5BXenZfrNyQa?= =?us-ascii?Q?4XafLaUcY0X2InLoP3zEqyi4q3wwpuZPHUq0EP4KlbzXsIaMlJaQJe+BUhFV?= =?us-ascii?Q?sb8O4kwNi7e90RVtuf4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:32.1111 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 30fb85e9-d23c-4d25-81ec-08de0a65c395 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EA.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9388 Content-Type: text/plain; charset="utf-8" bugs_smt_disable() is a wrapper around cpu_smt_disable() which can only be called during boot. Print a warning if any mitigations try to disable SMT at runtime. bugs_smt_disable() is marked __ref because cpu_smt_disable() is an __init function, but it will never be called after init code is free'd. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index fcb1337026f1..6cd7198f7dca 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -455,6 +455,14 @@ static bool __init should_mitigate_vuln(unsigned int b= ug) } } =20 +static void __ref bugs_smt_disable(bool enable) +{ + if (system_state =3D=3D SYSTEM_BOOTING) + cpu_smt_disable(enable); + else + pr_warn("Unable to disable SMT after system boot!\n"); +} + /* 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; @@ -550,7 +558,7 @@ static void __init mds_apply_mitigation(void) setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); if (!boot_cpu_has(X86_BUG_MSBDS_ONLY) && (mds_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON)) - cpu_smt_disable(false); + bugs_smt_disable(false); } } =20 @@ -671,7 +679,7 @@ static void __init taa_apply_mitigation(void) setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); =20 if (taa_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON) - cpu_smt_disable(false); + bugs_smt_disable(false); } } =20 @@ -784,7 +792,7 @@ static void __init mmio_apply_mitigation(void) static_branch_enable(&cpu_buf_idle_clear); =20 if (mmio_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON) - cpu_smt_disable(false); + bugs_smt_disable(false); } =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS @@ -1592,7 +1600,7 @@ static void __init retbleed_apply_mitigation(void) =20 if (mitigate_smt && !boot_cpu_has(X86_FEATURE_STIBP) && (retbleed_nosmt || smt_mitigations =3D=3D SMT_MITIGATIONS_ON)) - cpu_smt_disable(false); + bugs_smt_disable(false); } =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS @@ -3109,10 +3117,10 @@ static void __init l1tf_apply_mitigation(void) break; case L1TF_MITIGATION_FLUSH_NOSMT: case L1TF_MITIGATION_FULL: - cpu_smt_disable(false); + bugs_smt_disable(false); break; case L1TF_MITIGATION_FULL_FORCE: - cpu_smt_disable(true); + bugs_smt_disable(true); break; } =20 --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013060.outbound.protection.outlook.com [40.93.201.60]) (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 0C78A2798FA for ; Mon, 13 Oct 2025 14:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366153; cv=fail; b=VgeqwEy3Bj3xr582VpckeU7Yt2+ovBPzaGiaPzHX+mIOiSfBMHrY5QYo0rlc1CmOU2Bpj2ox0rZd4cNXhpAYg9LghydZCrrys3XYYRCD7LzhKQOfWnU64h49DZNyH0kJkPif2oqTMbwViRQTvO6I6uy6g8vatXWFU9CBPR1SPqo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366153; c=relaxed/simple; bh=ru5Jzgp6+euHSpNlCRPuGaj61loc2WN/1y+OR6PAQvE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=evyf1YgpzYxuA/lmRzPC/5U25r3KW484zF1ifUS2+QIZXviomjqvLyBTW0HxQzsUSm0a8h7n+voo/17Bbk1fUR+aCSwh62oyw6hmY6n1+jHBcsvLtRdEf77nUzWOz9Lnptz+GNlQKxiRlYqbO4FwYxt0xlSDpjrXyW2Al5UPeJ8= 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=kXL1Zc1K; arc=fail smtp.client-ip=40.93.201.60 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="kXL1Zc1K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gEV70GSpn6I8ri2xeigqp0QOd6HAqApnw7tlmsPjjMRlO5b3BNwVmp7qRn6ORkZP/yVvIZIu9pHfUnerVBKV3ctvlNyN/yEAyhNFKEngc6m52IN6f11JtAb66F5sXG1sEQ2VHG9++B6u0Xgqy4z61sgYcrZdL5reyEvYsjkRUKWv7Y3miEvoObc25m3kd+3ajabGqQBqKscAFUS8zKE24Bua4S1MJEmkLc5U4+Ez2yYRRmEM3Yjrb45uvslf88ZXEQS8bxZlJ2PcGdFn2tJyowE4Y+G76fLK1yLkBs3Y46BEMLDcgQ8tsYSM/3ipw28kzUjPbgEQ9Aj8tfp+TCb2+Q== 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=hmTNeuWrHIxEgiREMxaAEKAs82iAZrjAf5GBd/LCHVU=; b=sXnlK9BkngWyAu3NSLiWiAw7V0qjFURy6pzBfWKNbIpkrq8CY5xA/8U2732EvFxItE9Ho0fZ5oKePG0zTDeiE1iJTB7KoDSruEo6z4zAzWgEpPAbbrDMpo7hU8U6Fv0pV0AaPj+Uh5gorQ1dxxW9TvIG86SaHJ2VAtvdSk4bZh5jbHWyIc1tur0lIbl1qGESNECfjxCfWeBf27i1/31SBBGW1MdtiMdfsFlZalFCrkaWNhyZWHAwNfjpx0jtRviEoMQP1Bx8Tsy0uvfoD42HMZiC1RGWdm6rEUQNX8DTtzHzz7MbTXeSR/oE2v5GuhjtpSDoaLPT7SErbQv8cOIUvA== 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=hmTNeuWrHIxEgiREMxaAEKAs82iAZrjAf5GBd/LCHVU=; b=kXL1Zc1KeuZWLUuj6FjxO7sUpOtUlvPINEG7jRZsude1qllqloXR9y3+ayon8nrKyfjfAg0rcox5yARf8czEOpTg30+qW6yXKHQzrBVgzCrZpmu3zPd9sMtbOD+BTTCctMxOPvvY5TY/ZrOtFChi1aFzj8V7sbN/QmqJLhZJYiQ= Received: from BYAPR08CA0072.namprd08.prod.outlook.com (2603:10b6:a03:117::49) by CH2PR12MB4040.namprd12.prod.outlook.com (2603:10b6:610:ac::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:48 +0000 Received: from MWH0EPF000989EA.namprd02.prod.outlook.com (2603:10b6:a03:117:cafe::a2) by BYAPR08CA0072.outlook.office365.com (2603:10b6:a03:117::49) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:47 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:31 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 20/56] x86/bugs: Move bugs.c logic out of .init section Date: Mon, 13 Oct 2025 09:34:08 -0500 Message-ID: <20251013143444.3999-21-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|CH2PR12MB4040:EE_ X-MS-Office365-Filtering-Correlation-Id: 168889b2-1390-4777-fb48-08de0a65ccd3 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?llix9mqcFcdKPTUiU8kME0NVcD+TTPaqpGyYGWvt9S0iM5IyoL3t2GmlG4cP?= =?us-ascii?Q?ut3WKKntJEIXnnRq6/KGJvbtwf4Y1TFuZBDoeF5X/sxrCPVIcT10aDeWpd0i?= =?us-ascii?Q?WSVSfCf52z3EeRevgR8cFYiW34kbHg2Ic5Nj3oNt8GZnV+VTf8TsgJ0VDeRe?= =?us-ascii?Q?FYVScZHivZoIHpAE8ex9D3H720YntwxdPZiHCb4K8sfLqzStKUjN3hwB64O3?= =?us-ascii?Q?Yh+128QgfSLI4EeooKXRQzUYvciG/Sm1iHUmscNPPnYJ8yG5PYTQdVV4YckJ?= =?us-ascii?Q?I0rtpxgbv207tt2vW+yKG5yjkViIhBWQ3+r3g+eA5I6LFAJqU+xWdgD2GxIU?= =?us-ascii?Q?soRoDsP+z9j99Zl9+hTtPo5zaFXPRv+0zZTODo5OyDFPJcTBR+oYYVKU9ZtN?= =?us-ascii?Q?GxC6HnH2Y+SLZpzm5HVbmfHLXYAhNrW9n1BDBiIGKBdTYpf8WSf5B0lkzBXl?= =?us-ascii?Q?7bUocXh77rITM0UPgfHrff84m7cPoBp5cHptoPij03meLMYSs5HQeVXSvA71?= =?us-ascii?Q?Qq4SKTYzEIHJh5wnCoIMw58v+7fw95EnuDoyxh5fpLozI3syhomqlbFAs0GH?= =?us-ascii?Q?IBo33/JYDJ6kUI6DLxDWyHR050NsmA5aFBY2HEb9oLahR2QleIyecAVQWQvM?= =?us-ascii?Q?f5T75nXtu4wiNP4TomJjnskcwFNMqEwwLLjo2uVdH+POOEeNmg+vEoQeYan/?= =?us-ascii?Q?f9zbW2MLIE8helZHvje3ORAODVXgXckZ4+rJR5/UvGCK/WdHY2gl4syG8OvI?= =?us-ascii?Q?SlDJBjcF/JWNpzucb2cLeyQj/htYOx4iZqUc7F3jmfCSFvGJBHGBObzyhn3M?= =?us-ascii?Q?lURASVyxBB3Osj41KDcpVSzzY4sDGkuJXgFXtvg9INYlWTFo7I8+oVyjEH2b?= =?us-ascii?Q?lN+lG9fruW0n+jSmBrfaiY28k5njoxLbP9t+ei0T8qB/su5Tk45pfWtJ/vbo?= =?us-ascii?Q?ErrMzPcbrbZZGvePUJY6+IUlUHm0h711+E+t/UGUyPnQmF5XvnwPyldOdGue?= =?us-ascii?Q?M90lD0unvDRcV2gXVRoXOYHTWr6JRCrcNA8STQ0jnNWzc3doauptkcfH6+L7?= =?us-ascii?Q?tFj3GcC/gIkHGNqoIh8BAro4HbaAAVRspKWh/DCHsKCCCn3iYSt5BCBJ7rW8?= =?us-ascii?Q?b/MO3yihqXwZQI117ZX9IgQysItjy9lLKtA6KzYap55rFozC5wlGqZ620EDe?= =?us-ascii?Q?VEX5OZcJr7t8m90lIAMkgl9xQPWZHgX6XGXKQv7nvo7wZ8uoaShI859xEoAZ?= =?us-ascii?Q?MBBrmxzwsaneeyKU2iHZrcTerLjgZrrRFCF0p2gTPqHW+gy8jzSSj13pHB9r?= =?us-ascii?Q?O4K0OiBaVYRygPyV+kjBOoR/JSVPAxM5DlYjNTdH6xQmzvvOO+CVL/3aRo2U?= =?us-ascii?Q?UJ0klTPnQb1J9mnbpAlochFYLU83srluc+VTFf17TCApOFmvhNRrx891JhkO?= =?us-ascii?Q?SzdzPQ4wzj8h7f/WRIDu1oJBrVXnFwOh+dZMam4xysT7AOHvqHxD2thdjxrk?= =?us-ascii?Q?NnO6f3CgYK4/9YepyvEgeg2UGtlyK1l3z8H/3MFdXNT0G/g7AyfA4vgUjXom?= =?us-ascii?Q?qR2bvV/W6zY19OQHkZE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:47.6186 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 168889b2-1390-4777-fb48-08de0a65ccd3 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EA.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4040 Content-Type: text/plain; charset="utf-8" If dynamic mitigations are supported, all the mitigation selection functions and mitigation choices may change at runtime. Therefore, none of the functions may exist in .init and the data must not be read-only. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 312 ++++++++++++++++++------------------- 1 file changed, 156 insertions(+), 156 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 6cd7198f7dca..06061bcb08b8 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -55,52 +55,52 @@ * mitigation option. */ =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 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); -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 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); -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 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 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); -static void __init bhi_update_mitigation(void); -static void __init bhi_apply_mitigation(void); -static void __init its_select_mitigation(void); -static void __init its_update_mitigation(void); -static void __init its_apply_mitigation(void); -static void __init tsa_select_mitigation(void); -static void __init tsa_apply_mitigation(void); -static void __init vmscape_select_mitigation(void); -static void __init vmscape_update_mitigation(void); -static void __init vmscape_apply_mitigation(void); +static void spectre_v1_select_mitigation(void); +static void spectre_v1_apply_mitigation(void); +static void spectre_v2_select_mitigation(void); +static void spectre_v2_update_mitigation(void); +static void spectre_v2_apply_mitigation(void); +static void retbleed_select_mitigation(void); +static void retbleed_update_mitigation(void); +static void retbleed_apply_mitigation(void); +static void spectre_v2_user_select_mitigation(void); +static void spectre_v2_user_update_mitigation(void); +static void spectre_v2_user_apply_mitigation(void); +static void ssb_select_mitigation(void); +static void ssb_apply_mitigation(void); +static void l1tf_select_mitigation(void); +static void l1tf_apply_mitigation(void); +static void mds_select_mitigation(void); +static void mds_update_mitigation(void); +static void mds_apply_mitigation(void); +static void taa_select_mitigation(void); +static void taa_update_mitigation(void); +static void taa_apply_mitigation(void); +static void mmio_select_mitigation(void); +static void mmio_update_mitigation(void); +static void mmio_apply_mitigation(void); +static void rfds_select_mitigation(void); +static void rfds_update_mitigation(void); +static void rfds_apply_mitigation(void); +static void srbds_select_mitigation(void); +static void srbds_apply_mitigation(void); +static void l1d_flush_select_mitigation(void); +static void srso_select_mitigation(void); +static void srso_update_mitigation(void); +static void srso_apply_mitigation(void); +static void gds_select_mitigation(void); +static void gds_apply_mitigation(void); +static void bhi_select_mitigation(void); +static void bhi_update_mitigation(void); +static void bhi_apply_mitigation(void); +static void its_select_mitigation(void); +static void its_update_mitigation(void); +static void its_apply_mitigation(void); +static void tsa_select_mitigation(void); +static void tsa_apply_mitigation(void); +static void vmscape_select_mitigation(void); +static void vmscape_update_mitigation(void); +static void vmscape_apply_mitigation(void); =20 /* The base value of the SPEC_CTRL MSR without task-specific bits set */ u64 x86_spec_ctrl_base; @@ -118,15 +118,15 @@ EXPORT_PER_CPU_SYMBOL_GPL(x86_spec_ctrl_current); DEFINE_PER_CPU(bool, x86_ibpb_exit_to_user); EXPORT_PER_CPU_SYMBOL_GPL(x86_ibpb_exit_to_user); =20 -u64 x86_pred_cmd __ro_after_init =3D PRED_CMD_IBPB; +u64 x86_pred_cmd =3D PRED_CMD_IBPB; =20 -static u64 __ro_after_init x86_arch_cap_msr; +static u64 x86_arch_cap_msr; =20 static DEFINE_MUTEX(spec_ctrl_mutex); =20 -void (*x86_return_thunk)(void) __ro_after_init =3D __x86_return_thunk; +void (*x86_return_thunk)(void) =3D __x86_return_thunk; =20 -static void __init set_return_thunk(void *thunk) +static void set_return_thunk(void *thunk) { x86_return_thunk =3D thunk; =20 @@ -169,8 +169,8 @@ EXPORT_SYMBOL_GPL(spec_ctrl_current); * AMD specific MSR info for Speculative Store Bypass control. * x86_amd_ls_cfg_ssbd_mask is initialized in identify_boot_cpu(). */ -u64 __ro_after_init x86_amd_ls_cfg_base; -u64 __ro_after_init x86_amd_ls_cfg_ssbd_mask; +u64 x86_amd_ls_cfg_base; +u64 x86_amd_ls_cfg_ssbd_mask; =20 /* Control conditional STIBP in switch_to() */ DEFINE_STATIC_KEY_FALSE(switch_to_cond_stibp); @@ -205,7 +205,7 @@ EXPORT_SYMBOL_GPL(cpu_buf_vm_clear); #undef pr_fmt #define pr_fmt(fmt) "mitigations: " fmt =20 -static void __init cpu_print_attack_vectors(void) +static void cpu_print_attack_vectors(void) { pr_info("Enabled attack vectors: "); =20 @@ -235,7 +235,7 @@ static void __init cpu_print_attack_vectors(void) } } =20 -void __init cpu_select_mitigations(void) +void cpu_select_mitigations(void) { /* * Read the SPEC_CTRL MSR to account for reserved bits which may @@ -399,7 +399,7 @@ static void x86_amd_ssb_enable(void) * * See Documentation/admin-guide/hw-vuln/attack_vector_controls.rst */ -static bool __init should_mitigate_vuln(unsigned int bug) +static bool should_mitigate_vuln(unsigned int bug) { switch (bug) { /* @@ -464,9 +464,9 @@ static void __ref bugs_smt_disable(bool enable) } =20 /* Default mitigation for MDS-affected CPUs */ -static enum mds_mitigations mds_mitigation __ro_after_init =3D +static enum mds_mitigations mds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_MDS) ? MDS_MITIGATION_AUTO : MDS_MITIGATION_= OFF; -static bool mds_nosmt __ro_after_init =3D false; +static bool mds_nosmt =3D false; =20 static const char * const mds_strings[] =3D { [MDS_MITIGATION_OFF] =3D "Vulnerable", @@ -483,7 +483,7 @@ enum taa_mitigations { }; =20 /* Default mitigation for TAA-affected CPUs */ -static enum taa_mitigations taa_mitigation __ro_after_init =3D +static enum taa_mitigations taa_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_TAA) ? TAA_MITIGATION_AUTO : TAA_MITIGATION_= OFF; =20 enum mmio_mitigations { @@ -494,7 +494,7 @@ enum mmio_mitigations { }; =20 /* Default mitigation for Processor MMIO Stale Data vulnerabilities */ -static enum mmio_mitigations mmio_mitigation __ro_after_init =3D +static enum mmio_mitigations mmio_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_MMIO_STALE_DATA) ? MMIO_MITIGATION_AUTO : MM= IO_MITIGATION_OFF; =20 enum rfds_mitigations { @@ -505,16 +505,16 @@ enum rfds_mitigations { }; =20 /* Default mitigation for Register File Data Sampling */ -static enum rfds_mitigations rfds_mitigation __ro_after_init =3D +static enum rfds_mitigations rfds_mitigation =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 clearing * through X86_FEATURE_CLEAR_CPU_BUF on kernel and guest entry. */ -static bool verw_clear_cpu_buf_mitigation_selected __ro_after_init; +static bool verw_clear_cpu_buf_mitigation_selected; =20 -static void __init mds_select_mitigation(void) +static void mds_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MDS)) { mds_mitigation =3D MDS_MITIGATION_OFF; @@ -534,7 +534,7 @@ static void __init mds_select_mitigation(void) verw_clear_cpu_buf_mitigation_selected =3D true; } =20 -static void __init mds_update_mitigation(void) +static void mds_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MDS)) return; @@ -551,7 +551,7 @@ static void __init mds_update_mitigation(void) pr_info("%s\n", mds_strings[mds_mitigation]); } =20 -static void __init mds_apply_mitigation(void) +static void mds_apply_mitigation(void) { if (mds_mitigation =3D=3D MDS_MITIGATION_FULL || mds_mitigation =3D=3D MDS_MITIGATION_VMWERV) { @@ -572,7 +572,7 @@ static void mds_reset_mitigation(void) } #endif =20 -static int __init mds_cmdline(char *str) +static int mds_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_MDS)) return 0; @@ -596,7 +596,7 @@ early_param("mds", mds_cmdline); #undef pr_fmt #define pr_fmt(fmt) "TAA: " fmt =20 -static bool taa_nosmt __ro_after_init; +static bool taa_nosmt; =20 static const char * const taa_strings[] =3D { [TAA_MITIGATION_OFF] =3D "Vulnerable", @@ -605,12 +605,12 @@ static const char * const taa_strings[] =3D { [TAA_MITIGATION_TSX_DISABLED] =3D "Mitigation: TSX disabled", }; =20 -static bool __init taa_vulnerable(void) +static bool taa_vulnerable(void) { return boot_cpu_has_bug(X86_BUG_TAA) && boot_cpu_has(X86_FEATURE_RTM); } =20 -static void __init taa_select_mitigation(void) +static void taa_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_TAA)) { taa_mitigation =3D TAA_MITIGATION_OFF; @@ -635,7 +635,7 @@ static void __init taa_select_mitigation(void) verw_clear_cpu_buf_mitigation_selected =3D true; } =20 -static void __init taa_update_mitigation(void) +static void taa_update_mitigation(void) { if (!taa_vulnerable()) return; @@ -665,7 +665,7 @@ static void __init taa_update_mitigation(void) pr_info("%s\n", taa_strings[taa_mitigation]); } =20 -static void __init taa_apply_mitigation(void) +static void taa_apply_mitigation(void) { if (taa_mitigation =3D=3D TAA_MITIGATION_VERW || taa_mitigation =3D=3D TAA_MITIGATION_UCODE_NEEDED) { @@ -683,7 +683,7 @@ static void __init taa_apply_mitigation(void) } } =20 -static int __init tsx_async_abort_parse_cmdline(char *str) +static int tsx_async_abort_parse_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_TAA)) return 0; @@ -707,7 +707,7 @@ early_param("tsx_async_abort", tsx_async_abort_parse_cm= dline); #undef pr_fmt #define pr_fmt(fmt) "MMIO Stale Data: " fmt =20 -static bool mmio_nosmt __ro_after_init =3D false; +static bool mmio_nosmt =3D false; =20 static const char * const mmio_strings[] =3D { [MMIO_MITIGATION_OFF] =3D "Vulnerable", @@ -715,7 +715,7 @@ static const char * const mmio_strings[] =3D { [MMIO_MITIGATION_VERW] =3D "Mitigation: Clear CPU buffers", }; =20 -static void __init mmio_select_mitigation(void) +static void mmio_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) { mmio_mitigation =3D MMIO_MITIGATION_OFF; @@ -741,7 +741,7 @@ static void __init mmio_select_mitigation(void) verw_clear_cpu_buf_mitigation_selected =3D true; } =20 -static void __init mmio_update_mitigation(void) +static void mmio_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) return; @@ -767,7 +767,7 @@ static void __init mmio_update_mitigation(void) pr_info("%s\n", mmio_strings[mmio_mitigation]); } =20 -static void __init mmio_apply_mitigation(void) +static void mmio_apply_mitigation(void) { if (mmio_mitigation =3D=3D MMIO_MITIGATION_OFF) return; @@ -805,7 +805,7 @@ static void mmio_reset_mitigation(void) } #endif =20 -static int __init mmio_stale_data_parse_cmdline(char *str) +static int mmio_stale_data_parse_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) return 0; @@ -835,12 +835,12 @@ static const char * const rfds_strings[] =3D { [RFDS_MITIGATION_UCODE_NEEDED] =3D "Vulnerable: No microcode", }; =20 -static inline bool __init verw_clears_cpu_reg_file(void) +static inline bool verw_clears_cpu_reg_file(void) { return (x86_arch_cap_msr & ARCH_CAP_RFDS_CLEAR); } =20 -static void __init rfds_select_mitigation(void) +static void rfds_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_RFDS)) { rfds_mitigation =3D RFDS_MITIGATION_OFF; @@ -861,7 +861,7 @@ static void __init rfds_select_mitigation(void) verw_clear_cpu_buf_mitigation_selected =3D true; } =20 -static void __init rfds_update_mitigation(void) +static void rfds_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_RFDS)) return; @@ -877,13 +877,13 @@ static void __init rfds_update_mitigation(void) pr_info("%s\n", rfds_strings[rfds_mitigation]); } =20 -static void __init rfds_apply_mitigation(void) +static void rfds_apply_mitigation(void) { if (rfds_mitigation =3D=3D RFDS_MITIGATION_VERW) setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); } =20 -static __init int rfds_parse_cmdline(char *str) +static int rfds_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -912,7 +912,7 @@ enum srbds_mitigations { SRBDS_MITIGATION_HYPERVISOR, }; =20 -static enum srbds_mitigations srbds_mitigation __ro_after_init =3D +static enum srbds_mitigations srbds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_SRBDS) ? SRBDS_MITIGATION_AUTO : SRBDS_MITIG= ATION_OFF; =20 static const char * const srbds_strings[] =3D { @@ -962,7 +962,7 @@ void update_srbds_msr(void) wrmsrq(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl); } =20 -static void __init srbds_select_mitigation(void) +static void srbds_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SRBDS)) { srbds_mitigation =3D SRBDS_MITIGATION_OFF; @@ -996,7 +996,7 @@ static void __init srbds_select_mitigation(void) pr_info("%s\n", srbds_strings[srbds_mitigation]); } =20 -static void __init srbds_apply_mitigation(void) +static void srbds_apply_mitigation(void) { update_srbds_msr(); } @@ -1012,7 +1012,7 @@ static void srbds_reset_mitigation(void) } #endif =20 -static int __init srbds_parse_cmdline(char *str) +static int srbds_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -1033,9 +1033,9 @@ enum l1d_flush_mitigations { L1D_FLUSH_ON, }; =20 -static enum l1d_flush_mitigations l1d_flush_mitigation __initdata =3D L1D_= FLUSH_OFF; +static enum l1d_flush_mitigations l1d_flush_mitigation =3D L1D_FLUSH_OFF; =20 -static void __init l1d_flush_select_mitigation(void) +static void l1d_flush_select_mitigation(void) { if (!l1d_flush_mitigation || !boot_cpu_has(X86_FEATURE_FLUSH_L1D)) return; @@ -1044,7 +1044,7 @@ static void __init l1d_flush_select_mitigation(void) pr_info("Conditional flush on switch_mm() enabled\n"); } =20 -static int __init l1d_flush_parse_cmdline(char *str) +static int l1d_flush_parse_cmdline(char *str) { if (!strcmp(str, "on")) l1d_flush_mitigation =3D L1D_FLUSH_ON; @@ -1066,7 +1066,7 @@ enum gds_mitigations { GDS_MITIGATION_HYPERVISOR, }; =20 -static enum gds_mitigations gds_mitigation __ro_after_init =3D +static enum gds_mitigations gds_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_GDS) ? GDS_MITIGATION_AUTO : GDS_MITIGATION_= OFF; =20 static const char * const gds_strings[] =3D { @@ -1123,7 +1123,7 @@ void update_gds_msr(void) WARN_ON_ONCE(mcu_ctrl !=3D mcu_ctrl_after); } =20 -static void __init gds_select_mitigation(void) +static void gds_select_mitigation(void) { u64 mcu_ctrl; =20 @@ -1170,7 +1170,7 @@ static void __init gds_select_mitigation(void) } } =20 -static void __init gds_apply_mitigation(void) +static void gds_apply_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_GDS)) return; @@ -1202,7 +1202,7 @@ static void gds_reset_mitigation(void) } #endif =20 -static int __init gds_parse_cmdline(char *str) +static int gds_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -1227,7 +1227,7 @@ enum spectre_v1_mitigation { SPECTRE_V1_MITIGATION_AUTO, }; =20 -static enum spectre_v1_mitigation spectre_v1_mitigation __ro_after_init = =3D +static enum spectre_v1_mitigation spectre_v1_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V1) ? SPECTRE_V1_MITIGATION_AUTO : SPECTRE_V1_MITIGATION_NONE; =20 @@ -1257,7 +1257,7 @@ static bool smap_works_speculatively(void) return true; } =20 -static void __init spectre_v1_select_mitigation(void) +static void spectre_v1_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1)) spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; @@ -1266,7 +1266,7 @@ static void __init spectre_v1_select_mitigation(void) spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; } =20 -static void __init spectre_v1_apply_mitigation(void) +static void spectre_v1_apply_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1)) return; @@ -1319,14 +1319,14 @@ static void spectre_v1_reset_mitigation(void) } #endif =20 -static int __init nospectre_v1_cmdline(char *str) +static int nospectre_v1_cmdline(char *str) { spectre_v1_mitigation =3D SPECTRE_V1_MITIGATION_NONE; return 0; } early_param("nospectre_v1", nospectre_v1_cmdline); =20 -enum spectre_v2_mitigation spectre_v2_enabled __ro_after_init =3D SPECTRE_= V2_NONE; +enum spectre_v2_mitigation spectre_v2_enabled =3D SPECTRE_V2_NONE; =20 /* Depends on spectre_v2 mitigation selected already */ static inline bool cdt_possible(enum spectre_v2_mitigation mode) @@ -1353,7 +1353,7 @@ enum its_mitigation { ITS_MITIGATION_RETPOLINE_STUFF, }; =20 -static enum its_mitigation its_mitigation __ro_after_init =3D +static enum its_mitigation its_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_ITS) ? ITS_MITIGATION_AUTO : ITS_MITIGATION_= OFF; =20 enum retbleed_mitigation { @@ -1375,10 +1375,10 @@ static const char * const retbleed_strings[] =3D { [RETBLEED_MITIGATION_STUFF] =3D "Mitigation: Stuffing", }; =20 -static enum retbleed_mitigation retbleed_mitigation __ro_after_init =3D +static enum retbleed_mitigation retbleed_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_RETBLEED) ? RETBLEED_MITIGATION_AUTO : RETBL= EED_MITIGATION_NONE; =20 -static int __ro_after_init retbleed_nosmt =3D false; +static int retbleed_nosmt =3D false; =20 enum srso_mitigation { SRSO_MITIGATION_NONE, @@ -1393,9 +1393,9 @@ enum srso_mitigation { SRSO_MITIGATION_BP_SPEC_REDUCE, }; =20 -static enum srso_mitigation srso_mitigation __ro_after_init =3D SRSO_MITIG= ATION_AUTO; +static enum srso_mitigation srso_mitigation =3D SRSO_MITIGATION_AUTO; =20 -static int __init retbleed_parse_cmdline(char *str) +static int retbleed_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -1435,7 +1435,7 @@ early_param("retbleed", retbleed_parse_cmdline); #define RETBLEED_UNTRAIN_MSG "WARNING: BTB untrained return thunk mitigati= on is only effective on AMD/Hygon!\n" #define RETBLEED_INTEL_MSG "WARNING: Spectre v2 mitigation leaves CPU vuln= erable to RETBleed attacks, data leaks possible!\n" =20 -static void __init retbleed_select_mitigation(void) +static void retbleed_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_RETBLEED)) { retbleed_mitigation =3D RETBLEED_MITIGATION_NONE; @@ -1500,7 +1500,7 @@ static void __init retbleed_select_mitigation(void) } } =20 -static void __init retbleed_update_mitigation(void) +static void retbleed_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_RETBLEED)) return; @@ -1544,7 +1544,7 @@ static void __init retbleed_update_mitigation(void) pr_info("%s\n", retbleed_strings[retbleed_mitigation]); } =20 -static void __init retbleed_apply_mitigation(void) +static void retbleed_apply_mitigation(void) { bool mitigate_smt =3D false; =20 @@ -1627,7 +1627,7 @@ static const char * const its_strings[] =3D { [ITS_MITIGATION_RETPOLINE_STUFF] =3D "Mitigation: Retpolines, Stuffing RS= B", }; =20 -static int __init its_parse_cmdline(char *str) +static int its_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -1656,7 +1656,7 @@ static int __init its_parse_cmdline(char *str) } early_param("indirect_target_selection", its_parse_cmdline); =20 -static void __init its_select_mitigation(void) +static void its_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_ITS)) { its_mitigation =3D ITS_MITIGATION_OFF; @@ -1697,7 +1697,7 @@ static void __init its_select_mitigation(void) its_mitigation =3D ITS_MITIGATION_ALIGNED_THUNKS; } =20 -static void __init its_update_mitigation(void) +static void its_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_ITS)) return; @@ -1730,7 +1730,7 @@ static void __init its_update_mitigation(void) pr_info("%s\n", its_strings[its_mitigation]); } =20 -static void __init its_apply_mitigation(void) +static void its_apply_mitigation(void) { switch (its_mitigation) { case ITS_MITIGATION_OFF: @@ -1783,10 +1783,10 @@ static const char * const tsa_strings[] =3D { [TSA_MITIGATION_FULL] =3D "Mitigation: Clear CPU buffers", }; =20 -static enum tsa_mitigations tsa_mitigation __ro_after_init =3D +static enum tsa_mitigations tsa_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_TSA) ? TSA_MITIGATION_AUTO : TSA_MITIGATION_= NONE; =20 -static int __init tsa_parse_cmdline(char *str) +static int tsa_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -1806,7 +1806,7 @@ static int __init tsa_parse_cmdline(char *str) } early_param("tsa", tsa_parse_cmdline); =20 -static void __init tsa_select_mitigation(void) +static void tsa_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_TSA)) { tsa_mitigation =3D TSA_MITIGATION_NONE; @@ -1848,7 +1848,7 @@ static void __init tsa_select_mitigation(void) pr_info("%s\n", tsa_strings[tsa_mitigation]); } =20 -static void __init tsa_apply_mitigation(void) +static void tsa_apply_mitigation(void) { switch (tsa_mitigation) { case TSA_MITIGATION_USER_KERNEL: @@ -1880,9 +1880,9 @@ static void tsa_reset_mitigation(void) #undef pr_fmt #define pr_fmt(fmt) "Spectre V2 : " fmt =20 -static enum spectre_v2_user_mitigation spectre_v2_user_stibp __ro_after_in= it =3D +static enum spectre_v2_user_mitigation spectre_v2_user_stibp =3D SPECTRE_V2_USER_NONE; -static enum spectre_v2_user_mitigation spectre_v2_user_ibpb __ro_after_ini= t =3D +static enum spectre_v2_user_mitigation spectre_v2_user_ibpb =3D SPECTRE_V2_USER_NONE; =20 #ifdef CONFIG_MITIGATION_RETPOLINE @@ -1954,7 +1954,7 @@ enum spectre_v2_mitigation_cmd { SPECTRE_V2_CMD_IBRS, }; =20 -static enum spectre_v2_mitigation_cmd spectre_v2_cmd __ro_after_init =3D +static enum spectre_v2_mitigation_cmd spectre_v2_cmd =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ? SPECTRE_V2_CMD_AUTO : SPECTRE_= V2_CMD_NONE; =20 enum spectre_v2_user_mitigation_cmd { @@ -1967,7 +1967,7 @@ enum spectre_v2_user_mitigation_cmd { SPECTRE_V2_USER_CMD_SECCOMP_IBPB, }; =20 -static enum spectre_v2_user_mitigation_cmd spectre_v2_user_cmd __ro_after_= init =3D +static enum spectre_v2_user_mitigation_cmd spectre_v2_user_cmd =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ? SPECTRE_V2_USER_CMD_AUTO : SPE= CTRE_V2_USER_CMD_NONE; =20 static const char * const spectre_v2_user_strings[] =3D { @@ -1978,7 +1978,7 @@ static const char * const spectre_v2_user_strings[] = =3D { [SPECTRE_V2_USER_SECCOMP] =3D "User space: Mitigation: STIBP via seccomp= and prctl", }; =20 -static int __init spectre_v2_user_parse_cmdline(char *str) +static int spectre_v2_user_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -2009,7 +2009,7 @@ static inline bool spectre_v2_in_ibrs_mode(enum spect= re_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) +static void spectre_v2_user_select_mitigation(void) { if (!boot_cpu_has(X86_FEATURE_IBPB) && !boot_cpu_has(X86_FEATURE_STIBP)) return; @@ -2070,7 +2070,7 @@ static void __init spectre_v2_user_select_mitigation(= void) spectre_v2_user_stibp =3D SPECTRE_V2_USER_NONE; } =20 -static void __init spectre_v2_user_update_mitigation(void) +static void spectre_v2_user_update_mitigation(void) { if (!boot_cpu_has(X86_FEATURE_IBPB) && !boot_cpu_has(X86_FEATURE_STIBP)) return; @@ -2115,7 +2115,7 @@ static void __init spectre_v2_user_update_mitigation(= void) pr_info("%s\n", spectre_v2_user_strings[spectre_v2_user_stibp]); } =20 -static void __init spectre_v2_user_apply_mitigation(void) +static void spectre_v2_user_apply_mitigation(void) { /* Initialize Indirect Branch Prediction Barrier */ if (spectre_v2_user_ibpb !=3D SPECTRE_V2_USER_NONE) { @@ -2161,9 +2161,9 @@ static const char * const spectre_v2_strings[] =3D { [SPECTRE_V2_IBRS] =3D "Mitigation: IBRS", }; =20 -static bool nospectre_v2 __ro_after_init; +static bool nospectre_v2; =20 -static int __init nospectre_v2_parse_cmdline(char *str) +static int nospectre_v2_parse_cmdline(char *str) { nospectre_v2 =3D true; spectre_v2_cmd =3D SPECTRE_V2_CMD_NONE; @@ -2171,7 +2171,7 @@ static int __init nospectre_v2_parse_cmdline(char *st= r) } early_param("nospectre_v2", nospectre_v2_parse_cmdline); =20 -static int __init spectre_v2_parse_cmdline(char *str) +static int spectre_v2_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -2210,7 +2210,7 @@ static int __init spectre_v2_parse_cmdline(char *str) } early_param("spectre_v2", spectre_v2_parse_cmdline); =20 -static enum spectre_v2_mitigation __init spectre_v2_select_retpoline(void) +static enum spectre_v2_mitigation spectre_v2_select_retpoline(void) { if (!IS_ENABLED(CONFIG_MITIGATION_RETPOLINE)) { pr_err("Kernel not compiled with retpoline; no mitigation available!"); @@ -2220,10 +2220,10 @@ static enum spectre_v2_mitigation __init spectre_v2= _select_retpoline(void) return SPECTRE_V2_RETPOLINE; } =20 -static bool __ro_after_init rrsba_disabled; +static bool rrsba_disabled; =20 /* Disable in-kernel use of non-RSB RET predictors */ -static void __init spec_ctrl_disable_kernel_rrsba(void) +static void spec_ctrl_disable_kernel_rrsba(void) { if (rrsba_disabled) return; @@ -2241,7 +2241,7 @@ static void __init spec_ctrl_disable_kernel_rrsba(voi= d) rrsba_disabled =3D true; } =20 -static void __init spectre_v2_select_rsb_mitigation(enum spectre_v2_mitiga= tion mode) +static void spectre_v2_select_rsb_mitigation(enum spectre_v2_mitigation mo= de) { /* * WARNING! There are many subtleties to consider when changing *any* @@ -2295,7 +2295,7 @@ static void __init spectre_v2_select_rsb_mitigation(e= num spectre_v2_mitigation m * Set BHI_DIS_S to prevent indirect branches in kernel to be influenced by * branch history in userspace. Not needed if BHI_NO is set. */ -static bool __init spec_ctrl_bhi_dis(void) +static bool spec_ctrl_bhi_dis(void) { if (!boot_cpu_has(X86_FEATURE_BHI_CTRL)) return false; @@ -2314,10 +2314,10 @@ enum bhi_mitigations { BHI_MITIGATION_VMEXIT_ONLY, }; =20 -static enum bhi_mitigations bhi_mitigation __ro_after_init =3D +static enum bhi_mitigations bhi_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_SPECTRE_BHI) ? BHI_MITIGATION_AUTO : BHI_MIT= IGATION_OFF; =20 -static int __init spectre_bhi_parse_cmdline(char *str) +static int spectre_bhi_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -2335,7 +2335,7 @@ static int __init spectre_bhi_parse_cmdline(char *str) } early_param("spectre_bhi", spectre_bhi_parse_cmdline); =20 -static void __init bhi_select_mitigation(void) +static void bhi_select_mitigation(void) { if (!boot_cpu_has(X86_BUG_BHI)) bhi_mitigation =3D BHI_MITIGATION_OFF; @@ -2353,13 +2353,13 @@ static void __init bhi_select_mitigation(void) } } =20 -static void __init bhi_update_mitigation(void) +static void bhi_update_mitigation(void) { if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_NONE) bhi_mitigation =3D BHI_MITIGATION_OFF; } =20 -static void __init bhi_apply_mitigation(void) +static void bhi_apply_mitigation(void) { if (bhi_mitigation =3D=3D BHI_MITIGATION_OFF) return; @@ -2401,7 +2401,7 @@ static void bhi_reset_mitigation(void) } #endif =20 -static void __init spectre_v2_select_mitigation(void) +static void spectre_v2_select_mitigation(void) { if ((spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_RETPOLINE || spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_RETPOLINE_LFENCE || @@ -2501,7 +2501,7 @@ static void __init spectre_v2_select_mitigation(void) } } =20 -static void __init spectre_v2_update_mitigation(void) +static void spectre_v2_update_mitigation(void) { if (spectre_v2_cmd =3D=3D SPECTRE_V2_CMD_AUTO && !spectre_v2_in_eibrs_mode(spectre_v2_enabled)) { @@ -2519,7 +2519,7 @@ static void __init spectre_v2_update_mitigation(void) pr_info("%s\n", spectre_v2_strings[spectre_v2_enabled]); } =20 -static void __init spectre_v2_apply_mitigation(void) +static void 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); @@ -2675,7 +2675,7 @@ static void update_mds_branch_idle(void) #undef pr_fmt #define pr_fmt(fmt) "Speculative Store Bypass: " fmt =20 -static enum ssb_mitigation ssb_mode __ro_after_init =3D +static enum ssb_mitigation ssb_mode =3D IS_ENABLED(CONFIG_MITIGATION_SSB) ? SPEC_STORE_BYPASS_AUTO : SPEC_STORE_B= YPASS_NONE; =20 static const char * const ssb_strings[] =3D { @@ -2685,9 +2685,9 @@ static const char * const ssb_strings[] =3D { [SPEC_STORE_BYPASS_SECCOMP] =3D "Mitigation: Speculative Store Bypass dis= abled via prctl and seccomp", }; =20 -static bool nossb __ro_after_init; +static bool nossb; =20 -static int __init nossb_parse_cmdline(char *str) +static int nossb_parse_cmdline(char *str) { nossb =3D true; ssb_mode =3D SPEC_STORE_BYPASS_NONE; @@ -2695,7 +2695,7 @@ static int __init nossb_parse_cmdline(char *str) } early_param("nospec_store_bypass_disable", nossb_parse_cmdline); =20 -static int __init ssb_parse_cmdline(char *str) +static int ssb_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -2722,7 +2722,7 @@ static int __init ssb_parse_cmdline(char *str) } early_param("spec_store_bypass_disable", ssb_parse_cmdline); =20 -static void __init ssb_select_mitigation(void) +static void ssb_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS)) { ssb_mode =3D SPEC_STORE_BYPASS_NONE; @@ -2742,7 +2742,7 @@ static void __init ssb_select_mitigation(void) pr_info("%s\n", ssb_strings[ssb_mode]); } =20 -static void __init ssb_apply_mitigation(void) +static void ssb_apply_mitigation(void) { /* * We have three CPU feature flags that are in play here: @@ -3032,7 +3032,7 @@ EXPORT_SYMBOL_GPL(itlb_multihit_kvm_mitigation); #define pr_fmt(fmt) "L1TF: " fmt =20 /* Default mitigation for L1TF-affected CPUs */ -enum l1tf_mitigations l1tf_mitigation __ro_after_init =3D +enum l1tf_mitigations l1tf_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_L1TF) ? L1TF_MITIGATION_AUTO : L1TF_MITIGATI= ON_OFF; #if IS_ENABLED(CONFIG_KVM_INTEL) EXPORT_SYMBOL_GPL(l1tf_mitigation); @@ -3079,7 +3079,7 @@ static void override_cache_bits(struct cpuinfo_x86 *c) } } =20 -static void __init l1tf_select_mitigation(void) +static void l1tf_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_L1TF)) { l1tf_mitigation =3D L1TF_MITIGATION_OFF; @@ -3100,7 +3100,7 @@ static void __init l1tf_select_mitigation(void) l1tf_mitigation =3D L1TF_MITIGATION_FLUSH; } =20 -static void __init l1tf_apply_mitigation(void) +static void l1tf_apply_mitigation(void) { u64 half_pa; =20 @@ -3152,7 +3152,7 @@ static void l1tf_reset_mitigation(void) } #endif =20 -static int __init l1tf_cmdline(char *str) +static int l1tf_cmdline(char *str) { if (!boot_cpu_has_bug(X86_BUG_L1TF)) return 0; @@ -3192,7 +3192,7 @@ static const char * const srso_strings[] =3D { [SRSO_MITIGATION_BP_SPEC_REDUCE] =3D "Mitigation: Reduced Speculation" }; =20 -static int __init srso_parse_cmdline(char *str) +static int srso_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -3216,7 +3216,7 @@ early_param("spec_rstack_overflow", srso_parse_cmdlin= e); =20 #define SRSO_NOTICE "WARNING: See https://kernel.org/doc/html/latest/admin= -guide/hw-vuln/srso.html for mitigation options." =20 -static void __init srso_select_mitigation(void) +static void srso_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SRSO)) { srso_mitigation =3D SRSO_MITIGATION_NONE; @@ -3295,7 +3295,7 @@ static void __init srso_select_mitigation(void) } } =20 -static void __init srso_update_mitigation(void) +static void srso_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_SRSO)) return; @@ -3308,7 +3308,7 @@ static void __init srso_update_mitigation(void) pr_info("%s\n", srso_strings[srso_mitigation]); } =20 -static void __init srso_apply_mitigation(void) +static void srso_apply_mitigation(void) { /* * Clear the feature flag if this mitigation is not selected as that @@ -3397,10 +3397,10 @@ static const char * const vmscape_strings[] =3D { [VMSCAPE_MITIGATION_IBPB_ON_VMEXIT] =3D "Mitigation: IBPB on VMEXIT", }; =20 -static enum vmscape_mitigations vmscape_mitigation __ro_after_init =3D +static enum vmscape_mitigations vmscape_mitigation =3D IS_ENABLED(CONFIG_MITIGATION_VMSCAPE) ? VMSCAPE_MITIGATION_AUTO : VMSCAPE= _MITIGATION_NONE; =20 -static int __init vmscape_parse_cmdline(char *str) +static int vmscape_parse_cmdline(char *str) { if (!str) return -EINVAL; @@ -3420,7 +3420,7 @@ static int __init vmscape_parse_cmdline(char *str) } early_param("vmscape", vmscape_parse_cmdline); =20 -static void __init vmscape_select_mitigation(void) +static void vmscape_select_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_VMSCAPE) || !boot_cpu_has(X86_FEATURE_IBPB)) { @@ -3436,7 +3436,7 @@ static void __init vmscape_select_mitigation(void) } } =20 -static void __init vmscape_update_mitigation(void) +static void vmscape_update_mitigation(void) { if (!boot_cpu_has_bug(X86_BUG_VMSCAPE)) return; @@ -3448,7 +3448,7 @@ static void __init vmscape_update_mitigation(void) pr_info("%s\n", vmscape_strings[vmscape_mitigation]); } =20 -static void __init vmscape_apply_mitigation(void) +static void vmscape_apply_mitigation(void) { if (vmscape_mitigation =3D=3D VMSCAPE_MITIGATION_IBPB_EXIT_TO_USER) setup_force_cpu_cap(X86_FEATURE_IBPB_EXIT_TO_USER); --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012046.outbound.protection.outlook.com [40.107.200.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 C60F93090DF for ; Mon, 13 Oct 2025 14:35:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366154; cv=fail; b=an6c0dzIlNaoQENPWCRY5AmN45K1ZQYpR7WtZqyhxRPG37Q/OnXmzdDtOcD5sm48kjbIBGzzQgz0hnmdiy8oDF1ibw35iwUjtfkDHQn/+BvMMi0Fe4W7IZ8Hc3A5PS/cmCMbMwK3GUBwNerfZAC0MRVAdK3d/31c+f6Fo6ap/Ac= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366154; c=relaxed/simple; bh=aGwOHTRIJ5UKkc3fmrWliqguFIj2moiJPLQ88+Y0/oU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CQXAqs41cjO7dRYPhwnmzpdSYa237CYG9+f6RpXEF8fYwPC//zDgGoQghMlGsVa/28+Oz/FDZyGZJ5w/N1+kkAnPNU2CgFgiraHsMmWP9h95Jj4zUiQGImHUJTWRPhHvx5kjwMmzVPjUuxiMbUQ7ThD37W6L2IHCixzXxJv4q5A= 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=4v48BZPX; arc=fail smtp.client-ip=40.107.200.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="4v48BZPX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UahdrpzTrShDgCwnWLZehbrRTgQHUJZLoTaqoaAphNW4Y47+N6jwQ8k78QYz2JKrPdvm+vZcihcUiimeAccqUemJh7eKX+UGoU3TI9icawFku/8n1z/Wb2q3sM5w3Mc0/uOz/2DtA3VCA0OK6Fx0eMNJXrqvx1kyHOGYtwZfK3pOtikOJs5zxDBrfYnr1sq5BjqXKnnDNoDTtDOcojGx9GFfD3XBvuMFytYQX1k80XOgOS/Scp/x6gMiOfysc/25MsVi5w/0enBXuubbLu1sn/PD4ZC9RDio8ELsJ0lLrTVY/X+eoptmtL/BykDRhQPQbgl0mniTk3rA58RYEdzgMg== 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=989Z4arZKJGtxwebxOsFpXeKRyFQGdruxsm1oNCVcMs=; b=laSXmSwGEhlIrhWHLXJ5VWoEi68jC8sTJTG1362ks7JtUVmxWUsX0Dt2wO6r4O2vBDr1vMovVmv9sWnYZpPnVIIv9rgXmb83VEUxct7UBggRxJHcpB7trA6TCukVURzJ5LrDsPUcHLz40nJTXPXqH7k2teHk2PCRKnXJohp01hN/4wb8Jce1M0PyUEvGO0m2BxD7LC6/da9VwrhroQ0UzpF9lK7nJfNCeRIaclmKjEk0ofFnnurW6yTLu9xht1cBVBfwvpprRc/Dkc0VpT9xTM20zDqlXdpxowqjqM4a952y4qHzXqeBdUBAB5g3sf45FtxFo+xyZw77CHrAk5YQwA== 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=989Z4arZKJGtxwebxOsFpXeKRyFQGdruxsm1oNCVcMs=; b=4v48BZPXTLKZIcyd2DiPGP7VKD8qjsiiNXU64bq2yVwuhjtDpBh9kivNK0/DPoVj6VFYZDQ+yUsq9D6dJicw6UmwUDnytxX2RgtlCX0OwVR+7RJTZC/DDcYUXV10yhArvYT/Y74tVGb6SoUW6uikGOR06P0iLCBt/JAA2OmHOxs= Received: from BY3PR10CA0027.namprd10.prod.outlook.com (2603:10b6:a03:255::32) by LV3PR12MB9439.namprd12.prod.outlook.com (2603:10b6:408:20e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:48 +0000 Received: from MWH0EPF000989EC.namprd02.prod.outlook.com (2603:10b6:a03:255:cafe::e3) by BY3PR10CA0027.outlook.office365.com (2603:10b6:a03:255::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Mon, 13 Oct 2025 14:35:47 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:32 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 21/56] x86/callthunks: Move logic out of .init Date: Mon, 13 Oct 2025 09:34:09 -0500 Message-ID: <20251013143444.3999-22-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|LV3PR12MB9439:EE_ X-MS-Office365-Filtering-Correlation-Id: a923956c-6962-4772-680b-08de0a65cce4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5ilptM+Avzj7g8OYOmk8T47zkaJ9gzIZZ6sPMwlTho0J2ABnZX3vrFjvDcCm?= =?us-ascii?Q?fcJEthZVC0NG5jFHRFN0WEwgUIOtp/uVyIQDCwSz4UTmFQHqkqjWGyclcNTx?= =?us-ascii?Q?ek01RhMJQEjhWv4qu4ZdlJlJ893Z9gJBRVQgmb0Crw6yVgwXfJlUDsxneHCh?= =?us-ascii?Q?2nfWEkuhJ+qPF5ljy6BY8QXKaq9pOabKT0+JPhBsdcEAk+TA95cb31z0s3eY?= =?us-ascii?Q?We3vtVT+MmxA64JciDLuyRE5ETGmeclQosGl5xEQQKQBKHADtQVDmgEiwW5H?= =?us-ascii?Q?kMsTvU8HOtA8G3ItF5Li8iozhZUeXdqKGIr42amvLS8qf9LUZ4V5rzw6Aj3o?= =?us-ascii?Q?aLo1buMzkYad/n+2teG9BRG3ELBIBAbZEqXPPvKV4/4puJDn+EBsz1D2oyBl?= =?us-ascii?Q?m2zKHkl9YDaScZeJnu53XitQIMV2fiarRjLmUBLl0Hd+TSKZxe2n+C8zL8vx?= =?us-ascii?Q?HGh1+B9BtCxitR+bTJX3pwKH2XxsXbrgBTm0EZCx5njPzCRysEPe0RU0xBcj?= =?us-ascii?Q?5dqhqn39YivgCZ4e8o2q95xbxyqfHfha4iQJLHNvJxueq5Wb0TRo62AhaNpA?= =?us-ascii?Q?M0R0ZrmzJn8VihI2fjIlyrqsaNMQucHTJQdZm9YbiUENs00lyi2dTkBBRi3u?= =?us-ascii?Q?TDMKBXZw/ZmVaVmNZqy1n44w0eQHcEi2hjU7LTSxsT/HC3UQ7GiMYIO32/77?= =?us-ascii?Q?PZuKsc7YZxLNQsPaVbU+G0Q9oGzM8FC9bq6msLvNTe3hw7SDxe0mKesOmn5e?= =?us-ascii?Q?Nrq5JZdCl+VF0oDdlK1qpQBzCf6wSm22zZ1e3yk4DgWPDRU8eyqcUmVRAN8R?= =?us-ascii?Q?PGqjH1dJeUcl4NpFIvmFuIZxf+yt+kHJyDkJFL2GkcYHREy2l5SsC8UJC4Ay?= =?us-ascii?Q?vyer+noo0VmWvkoyk5H60fSfQNEcfg00uBlfosToZQuVH4kxOs7yZTUPVPo7?= =?us-ascii?Q?Emyzi85nM9iw1rFbMUxmbcDToUNQiLOI9G0o7fDfIRcL0sY6t4Et/IpOCCMt?= =?us-ascii?Q?nQMY6fhseqB9c8+Weud+39B/GlwOpSfXcccYlF5VTXnho8hPYl2eNZVBS+eR?= =?us-ascii?Q?4VqRy/wZawBj4xqft3gwxpK81nEtPz7q9d6OdoZJOkgqplWIp8kX/ZAGR5P/?= =?us-ascii?Q?vPZ2qfjhxWFX2D9NHF9nEFs+WWkvK9mgHV9nRtsLWRHGKc8gdZdzDph66LRV?= =?us-ascii?Q?EjMGAyWiYz9rs/8zebrr++nTicnBcwD5RxW/hUdIg/rzLFmsBrN6zxLX9BeX?= =?us-ascii?Q?AUDH5Pb0EvZa4MA64PwXvSgm6fcdP04hkw/hx7ZChp7pH4bHFyYO1/oqllNm?= =?us-ascii?Q?mzKphZcWB/XP8li0ZtkK6nGFl06e/c/AyeyxvcKieNcbI99oBGoXUoZ731TE?= =?us-ascii?Q?Ac9KQhsgbcNSEUwvBj29yUB4ktcJLTt4zbUzchrezc9pdYHoj5qZ1vMxjGHd?= =?us-ascii?Q?cmDfiySy+Kc0R9unMj/6yzlSW8agbmsxee8i2ZwO6xgkEKgj79uEd/Z1Wbxn?= =?us-ascii?Q?oH5Ldpzo3ZJaMRr0ZbfAnG3HCx2I2JWwCZVKjCmf0wN0ymwTGzIrMqW4BluX?= =?us-ascii?Q?yaKJ8m7Zqem8TIYN+rg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:47.7290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a923956c-6962-4772-680b-08de0a65cce4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EC.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9439 Content-Type: text/plain; charset="utf-8" With dynamic re-patching, these functions may be called at runtime so move them out of the .init section. Signed-off-by: David Kaplan --- arch/x86/kernel/callthunks.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/callthunks.c b/arch/x86/kernel/callthunks.c index a951333c5995..758e655f36a8 100644 --- a/arch/x86/kernel/callthunks.c +++ b/arch/x86/kernel/callthunks.c @@ -56,7 +56,7 @@ struct core_text { const char *name; }; =20 -static bool thunks_initialized __ro_after_init; +static bool thunks_initialized; =20 static const struct core_text builtin_coretext =3D { .base =3D (unsigned long)_text, @@ -151,7 +151,7 @@ static bool skip_addr(void *dest) return false; } =20 -static __init_or_module void *call_get_dest(void *addr) +static void *call_get_dest(void *addr) { struct insn insn; void *dest; @@ -204,7 +204,7 @@ static void *patch_dest(void *dest, bool direct) return pad; } =20 -static __init_or_module void patch_call(void *addr, const struct core_text= *ct) +static void patch_call(void *addr, const struct core_text *ct) { void *pad, *dest; u8 bytes[8]; @@ -229,7 +229,7 @@ static __init_or_module void patch_call(void *addr, con= st struct core_text *ct) text_poke_early(addr, bytes, CALL_INSN_SIZE); } =20 -static __init_or_module void +static void patch_call_sites(s32 *start, s32 *end, const struct core_text *ct) { s32 *s; @@ -238,7 +238,7 @@ patch_call_sites(s32 *start, s32 *end, const struct cor= e_text *ct) patch_call((void *)s + *s, ct); } =20 -static __init_or_module void +static void callthunks_setup(struct callthunk_sites *cs, const struct core_text *ct) { prdbg("Patching call sites %s\n", ct->name); @@ -246,7 +246,7 @@ callthunks_setup(struct callthunk_sites *cs, const stru= ct core_text *ct) prdbg("Patching call sites done%s\n", ct->name); } =20 -void __init callthunks_patch_builtin_calls(void) +void callthunks_patch_builtin_calls(void) { struct callthunk_sites cs =3D { .call_start =3D __call_sites, --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011005.outbound.protection.outlook.com [52.101.62.5]) (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 05BB83093A6 for ; Mon, 13 Oct 2025 14:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366156; cv=fail; b=ZAPmv4hRY+sX578HbuMHK4ug0OgNjBzyRXufMhx3Rl57sxDBaCIBaBNtrFR102WYZ8OpisdaUT5MCuOPSPuLfHFfDcmJHs6z7nYdQQK4eXoTzLIedYI7udOo/XAQRwoL6h57T/lncrh07X569ujtSWXSJOib959zD1LtpOc+1oQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366156; c=relaxed/simple; bh=roGvSICHKb09UTLR8Gp6FPQ2ycX1KaXDM3mSkIpAnUE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=I6+wdK9PwDJF+MRM30xDI/TLDvSFjJrnYlidapPJ6WsutiI7/UjjT9DF6/h7rNsyGDfnTEToyvxuzR0Wm8sSY6EDJ/l4hBDZpnlWnAk4pi81R1K8iiMWZNC8glMfOoH1ZsFubTzQWVk8z2n6DefSa+XD5iT7BpzGwTGPHVv5G20= 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=RTcl7sOq; arc=fail smtp.client-ip=52.101.62.5 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="RTcl7sOq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MhXzL2TUbxuOSxRpaNgebYfGu4C+1d1plXPZymm7tY/fyKdzrf24+Pb1WieJeT2a+G4y7YtGe8AqclwFAroPjJSpuQKPytM3FUQuXY3RFtACI1/IzRKKd5CqFrGgxuCD1nQhAnQr8+UkJkN6s/5e9/qEGVHp+v5MR0D5Q/BryZrE2NdaIdrLjmXydRQo5ZEZdpZrrZp2qxo5kFkt/+bpsMYd4liwWEj7E9Yj0Z4sGbKSfqO2aFQ7Ha1U/imSXny0V8JshQz8cue9518RsGGZLHWTAfFr42DLBJ0ZPvEQbWyxCpXlXI7cgIcsrq1NWaNQ8BB8L/0KzwkK+Q2yi08gug== 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=n3bEY+uzZFDqWDZmwyJ0RMagUu6W25UCPXJ6SlvOH9Q=; b=cwdGSKi2XJkcjRlMJMDQdww6A/ZAY1Vlavd+mWlPKr3JkDbqm01xNA6bztj0PiNDqFzhq/t4dU9hD/ART+pbL5jfUfIeD92C/KXsV0pasHHEjeBPajMhFADVZ6k9191Q8TkyECDIJOt0GjzhjQ+olcNxSFiOB2KqqfeKMnwKBM1CIVJ9clSLH5j2JO/aALNZ1HhQAYcY9on/8G7Umpnah25s0AkhzUT7BHHV6ZF2IfCsrdpXMgwrh8TQzZXjDAvePUx+WESC+q6VQ0FP54r18nnu1B9dN1Yesk0xjahkfwUR5BuLVW+KL1PLFbqPhRZjHXbdc+OoLLOD/jSYD1PvRw== 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=n3bEY+uzZFDqWDZmwyJ0RMagUu6W25UCPXJ6SlvOH9Q=; b=RTcl7sOq1mVSnE3lFHo0Wlg12dqKqCRUD/xY3gt8D8ll4siNtnzYQOVh7ii2TRuxZAThyZJh+HrQKb5P0euBEKYMnbtVcUejBdFmtVKD58BL+ejPQU52Xbujbtfw4Ab5B1TAR5K8GJCU2Tj00scgLzFPXALGH2o/uVcZpi2vvwA= Received: from BY3PR10CA0011.namprd10.prod.outlook.com (2603:10b6:a03:255::16) by MW4PR12MB7335.namprd12.prod.outlook.com (2603:10b6:303:22b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:49 +0000 Received: from MWH0EPF000989EC.namprd02.prod.outlook.com (2603:10b6:a03:255:cafe::f8) by BY3PR10CA0011.outlook.office365.com (2603:10b6:a03:255::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Mon, 13 Oct 2025 14:35:48 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:33 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 22/56] cpu: Move mitigation logic out of .init Date: Mon, 13 Oct 2025 09:34:10 -0500 Message-ID: <20251013143444.3999-23-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|MW4PR12MB7335:EE_ X-MS-Office365-Filtering-Correlation-Id: 2761bc01-50bc-42a0-9fb5-08de0a65cd9a 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?Z5N78huy3z05wkmXoBBp4K4T+jQcGYoY/f3aLsFe28wtBGaJJCNqq2dDYBz2?= =?us-ascii?Q?HmXpWNrpuYtslhE6aXmBGytM9j0Ze8O1eN5lmUYVreV74tdUvyRrHErr4PYm?= =?us-ascii?Q?zX1n1+MerBXYFQByIoDZ3dxekblZ02A7rL6f/uEiu2hxAV1DoVYsJ6rEEoSh?= =?us-ascii?Q?+Lo73817DHuJm11Vs+4goJCFfcNLpH63/GDQn5Qp8P2nFiQDEH+Dd/aIdLkn?= =?us-ascii?Q?d2+xsoklo+SUMFaFLmbqwGKkzP93MQkc4A9RCcLbHJIWTTa02H76hTDNxBZ4?= =?us-ascii?Q?0qBAyVdeikNweOsO9i0jXSjcuFlgHtKgcOqOGa2skKS3t48dISS4PhYqazn1?= =?us-ascii?Q?J50xhbPeOv3s7LzzDodVw9GT6/5vSZjrASAXutftkYjsDhlrztVTi7sFQG0G?= =?us-ascii?Q?d0rpDxTil70fBeUwlz5DUkI5zdWOjKu/r+xnWiB+k2xNUWmlNlum2Rnjz/m/?= =?us-ascii?Q?836t23ka/A+ST9gbGypsk8k7mrZA5/ABTkjV8EY9Oz4l7/5hxgaxE61YYSqM?= =?us-ascii?Q?cz2NwXQTBul+LneVASZWqihmx2tZVzjCL5UjzgXt0b0SADlKc7lWB2fHsATt?= =?us-ascii?Q?hXfC29vGV0ByIwiTTiK5xOBmngEUUH/ajiK21Bkwu9U5Nzv2WmzFpo9mCF2I?= =?us-ascii?Q?G3efx2nFKbWhitCHKQgCI5iBcIPnYnHh6g+Ngh1bTm95C1l6hsN2k5dOHNun?= =?us-ascii?Q?Ro3e2U1R400v2HKO5hsmrBmbSTiDzJaXunb126NLteftcWMi2vvTR2OX36Q7?= =?us-ascii?Q?GM1Xjmc+ynTw7dQnXE9nEGLx7WkKWlo8tTlTpmNRSGvByXof05+SkB+exJQy?= =?us-ascii?Q?O64Y54n8Raeeii+00P0IxI/nBaOsGzHqnW88ZZCkD2z7hwSuKHz67xzHJJct?= =?us-ascii?Q?DCNsQu3d/3DJ07WJ64onSNe0bfdGAGCFk/RjOyUauL1w8Mlcj9gczyyvXNM5?= =?us-ascii?Q?yO+X21aFT/J+XL/VyhKjYasvxtNvzkiKpdML65JuiOYhBQYubj0gjeOoImrp?= =?us-ascii?Q?6TZN9mFuOI3EXhxop702YklkfiQgj9SeQkqqQ2+BZxL9E/+GLRDTL+neHDLS?= =?us-ascii?Q?WluEd2isYApRrqtZVVrflkwFiztKVO6QdU3s0k1WRKAx+MyTH+wBmPEsERw6?= =?us-ascii?Q?/CHrdzw/t03zvB7UxM62SHRRD8Vyuu/3UD8PpJtO8Z/KrCIdrAePt645AkjP?= =?us-ascii?Q?gY8P0poPU7rqq/txQvIQuFy1+6WlWvg8c8LR7AVf8lhkb0dm3iSSCzRDUBs5?= =?us-ascii?Q?aFHiUmy28L80HB5wvaKw6piTWGfE24PeMhkeRinL1rLfDbHvSid9SCIGvquY?= =?us-ascii?Q?IsIHKv/YifdMpnqWw/nUQXc4MPYjG7QNesK26qzpIDxGqh2Z3dr1ClVjOcuE?= =?us-ascii?Q?GIsv8mfmHrjD8cyIBnUrTXxTgzrESYZS/sBWDiGwfKuHoRN+us+n/Wqq3wmS?= =?us-ascii?Q?HL5TYIjiYBSbDyEtjhgqzg4M9fdCrCxtlFHz8t1fuFWw2xkb4al37t5EDUun?= =?us-ascii?Q?S+wB/E7DbkdcjVw1cDt7BXAoaWxXt32HcCioBs6yk05AnkHHbLd8vnV/hU2B?= =?us-ascii?Q?CKRCCxocj7lpog8E1DI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:48.9234 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2761bc01-50bc-42a0-9fb5-08de0a65cd9a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EC.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7335 Content-Type: text/plain; charset="utf-8" The functions and data related to the global mitigations=3D option may need to be called at runtime to support dynamic re-patching. Move them out of the .init section. Signed-off-by: David Kaplan --- kernel/cpu.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/cpu.c b/kernel/cpu.c index 910249f6217a..33289405af30 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -3180,7 +3180,7 @@ void __init boot_cpu_hotplug_init(void) * 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 { +static bool attack_vectors[NR_CPU_ATTACK_VECTORS] =3D { [CPU_MITIGATE_USER_KERNEL] =3D true, [CPU_MITIGATE_USER_USER] =3D true, [CPU_MITIGATE_GUEST_HOST] =3D IS_ENABLED(CONFIG_KVM), @@ -3221,8 +3221,8 @@ enum { NR_VECTOR_PARAMS, }; =20 -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; +enum smt_mitigations smt_mitigations =3D SMT_MITIGATIONS_AUTO; +static enum cpu_mitigations cpu_mitigations =3D CPU_MITIGATIONS_AUTO; =20 static const match_table_t global_mitigations =3D { { CPU_MITIGATIONS_AUTO_NOSMT, "auto,nosmt"}, @@ -3239,7 +3239,7 @@ static const match_table_t vector_mitigations =3D { { NR_VECTOR_PARAMS, NULL}, }; =20 -static int __init mitigations_parse_global_opt(char *arg) +static int mitigations_parse_global_opt(char *arg) { int i; =20 @@ -3255,7 +3255,7 @@ static int __init mitigations_parse_global_opt(char *= arg) return 0; } =20 -static int __init mitigations_parse_cmdline(char *arg) +static int mitigations_parse_cmdline(char *arg) { char *s, *p; int len; @@ -3320,7 +3320,7 @@ bool cpu_mitigations_auto_nosmt(void) } EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt); #else -static int __init mitigations_parse_cmdline(char *arg) +static int mitigations_parse_cmdline(char *arg) { pr_crit("Kernel compiled without mitigations, ignoring 'mitigations'; sys= tem may still be vulnerable\n"); return 0; --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012028.outbound.protection.outlook.com [40.107.200.28]) (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 BD00230C368 for ; Mon, 13 Oct 2025 14:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.28 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366157; cv=fail; b=lw8/P+0afMVLREqBYp4SPIoTwL6EmiGovESvBzdHobkZqnuvaL7sGB4b6L2U17d1rYp9qloScGlyzD3v5ANxFoC9XJRdUPoDAWGEcumpwmCQ1EP9lIW/rKILWA1g2eg78ZweZ0RlbZfshbezpGf9QEKvSlazu3VBWueVvgRpnZ8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366157; c=relaxed/simple; bh=uhOE3pWB6UN29X1GDg+tjV+Jz8D2gU2nF0KWKF9WjqE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YOedCW3PWE2X9geo+Y9DsDQHfYb3Ca5jcsbzb6FL6RGMpvB1SVxHsMX4spkHWEXnqktEYpWXHjizCbqKBzhRlRkVTZKxAlUu/b/sAc8y9/vKMGL4C5v6N4oR6T3K0PfYDPyy9h+sYa8BP0KXoxAgcflbQk4kIMjDUR/hKT6Sfpo= 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=qDlqhXTm; arc=fail smtp.client-ip=40.107.200.28 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="qDlqhXTm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ui4uu+i627EUu4KPshqjZyNcDVhjo4YpJ2SFoHqlZoTgSur81C81ZrQ5JJQtDDubH1nvWzZdm1GuiczQRyPc09E/ytv7OldNHOL7ETzFFfQ5SDs/uX777jdvPKPAgaHzYIc3crFdH2aUUHTqItveXOOJgwaa74tNYxbd/tOtLoTI2Wh+c/xxeJTUU3UQTyFvZBuF/2o7ud5tsIuffxPyifqWUs8Y/mqHDWCS/eOPfR7nQRI0VeQ5SIF7cUn1afq+S0tENCxZ5CxIHheBlxW7cGDvUj1RCWFrHUUrFVEMpNyLet2eRkCKe5R96PTEuWIdPvBCcV/3jebU+W+8ugBLWg== 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=JyemTyaXyyo/Ho5jqv/PkYxl6urzAHRd/E5i7l2bmrU=; b=bB3smkWeLeXrA4sJEyb8X57xKMeIAG0IaAX7CanXyYsOyc1OseaIoAoXCGBMkDUTm4+UovsjoQ2eTnKS2a3BnOSB5zRjSiFGf/dQ9XOAo/4lbalXcXSZd3xZJ7fpOPztKkmpHpC1U82gl3Qi0Yzs+pOIe6pheiUN4icpqBXWMIUfcW2ID2YshoCMwuuHkZLlQHoX3TGDEAyHefvkCQ/uEHxxtgq+ccqk/sZJELeo/xYpRIT+8Y3fb0WHbjHB3W1nA3awQlHMGGhgw2sy+9AQ4O4Hu99gjZ0D+EYwzoPEFkiwEkJY8JwPBDWxdiXWfSq1yetQec2+NwVxW/Ko0fVtrA== 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=JyemTyaXyyo/Ho5jqv/PkYxl6urzAHRd/E5i7l2bmrU=; b=qDlqhXTmqvrESozBQ7tXvOIw1ncIa61CCqS6lRkKvcOQtUlG7Gt61JN9R6JSdCXTbVF8RGbgbnoip9Ghga+c9VmMaGjwqmikCGx0mHxsp3ieD/ea4aOJal9NURBueNS1lCxv/9UUsWgRpREpYae+5oVYZqji94NA2i3zCi49/N0= Received: from BY3PR10CA0010.namprd10.prod.outlook.com (2603:10b6:a03:255::15) by SN7PR12MB7023.namprd12.prod.outlook.com (2603:10b6:806:260::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:50 +0000 Received: from MWH0EPF000989EC.namprd02.prod.outlook.com (2603:10b6:a03:255:cafe::17) by BY3PR10CA0010.outlook.office365.com (2603:10b6:a03:255::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Mon, 13 Oct 2025 14:35:49 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:34 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 23/56] x86/vmlinux.lds: Move alternative sections Date: Mon, 13 Oct 2025 09:34:11 -0500 Message-ID: <20251013143444.3999-24-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|SN7PR12MB7023:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d05f9aa-c27b-433b-ea1e-08de0a65ce0f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xV7Glf+xD+Ohr9ZuN9AudTxR/9braLannlKDdagsWEDzGfFgJ+XZ5pBKcpGT?= =?us-ascii?Q?GrdFX/S8I9oB6Y6g/PsxksZ+C2JMQF4MfR8pullrM/oJR7hQLRC/64G4Tdfu?= =?us-ascii?Q?QEkVaHoAiLuYlnNHBEIjxXijqKfgWgvliGw91pw3yRhjXVe8GOqVIcp5IiWj?= =?us-ascii?Q?Khm5cgbTPsji2SvtqEa6+1UbYtBYbyr9Nco3mTTCmUxd165wRbpAB8WKm/kH?= =?us-ascii?Q?nq/HxGQIOzQNYuexaEZyJ/iV77IRvLrlgGj/WDt0x9mVr5r+9+jvyD6AM1fL?= =?us-ascii?Q?HP5apNk3wuPkqf7NmAbZZTRbiGwexatLpLd+cDG7zyG0dovq4kY1DbugOTBC?= =?us-ascii?Q?fhnn2IFt9sU0Dy0jco5g1DYxkJfeiyZW62xBdlboKzDe5UHBEgYRMePeAmcN?= =?us-ascii?Q?lz+6beqvi74694ZR2MU0hEjmBUNr3mBQKWKgw4zp5cf8XW7FUtF8K/wjVgf0?= =?us-ascii?Q?4nXrL6Ur0hvxkzXMIk2cPzA3+soDPYx0pZrioWJHgtQyfa8tXwvydRMtqlgp?= =?us-ascii?Q?Bm6WJbIZP/p7P6zBMGbERN8DafZ/OrR2cBxGzA04Gt+xujtzyubFGXGf0K/m?= =?us-ascii?Q?5tNyUXOhfrMPlN2j21y4PP4gR0afL5A0IhUgmEHiRQA0JCcfgT3S2QVfaAcY?= =?us-ascii?Q?QQ7iwnoow8OcT5c/Tc9mcsfL+SrjBjGkrawuLhRrdzLaJ9+o62fpNlzF090z?= =?us-ascii?Q?BRC/C9QrRBIFtW3ygdn8wSrRGEQXaZPEmIRQkA2x9ftckpBmIlEh/m1C7lcs?= =?us-ascii?Q?gi3pTs+IdsdSlfS1Ahnp+mCl6bOTrm9apM1q+kCBIjQ0U06KMzp/fA3wsFYU?= =?us-ascii?Q?cNu5DCtSk/oj4rPIZep+dRstVD69EU4rXDjmlfkWt0RViF6KfS3Yc1Xe4l3g?= =?us-ascii?Q?qZgc9sp5yVTQcvaI7rm0hQJboMHwR52GtkFzPiFe7ytnwW4RQ9GovLlv02wo?= =?us-ascii?Q?J7IbOEVmPBbOMkeT55hwn3hGXXYzJIKRFiERteCR2o055nbkr0uPuibMRNw8?= =?us-ascii?Q?H2le3a2swXuHnu8WNIVp/vkveRLP5VmbsoOeYdK4qF0Hza1+vZ3wMqAI3s/p?= =?us-ascii?Q?PzJjd9zW8gEIXjnng3s2dU7l6jUKkFfbeX2cYeDkUDYsitld4eEDcPGX8gJK?= =?us-ascii?Q?kirC4Q+27sGnu5Cxyn0aBwh4bFUFuEvI3LuZLjRHvjCbQhEQpT3xIL6xAaA6?= =?us-ascii?Q?VJ6fcXpwrRKvF3wG5M39n6EykoHIDUToMwDSQU4vnKlKFBoIpqhZDSk5EQ7m?= =?us-ascii?Q?5z7IZzUm9Y/mWPPB9UeQMVPgh/PbC4Y13iGcaVgUp7wId4uqgBQrkWthga3Q?= =?us-ascii?Q?PYwGIM4qPiDy+LkMuJLbei2kXMqmWP27yMr5NgHegn6rPGURi03OZsTB1sXb?= =?us-ascii?Q?SFDhqA6PtTNmlQKaTvW916llCACqMoBuICojmrBUt+udckKaMA1e1Ip6+rEQ?= =?us-ascii?Q?ekOnSylcLJJgQdevU20BSSlfhbQHX5Rhf6aB7V46lXUgYWaEzOlcufun2qgl?= =?us-ascii?Q?DUdM9lrV1JizQEC2CJ3+xN6UXw5BSNoohtCmw142AyWEYbJcpTZ4ef41g+t/?= =?us-ascii?Q?709cwiG8orhJSW/zqgo=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:49.6926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9d05f9aa-c27b-433b-ea1e-08de0a65ce0f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EC.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7023 Content-Type: text/plain; charset="utf-8" Move the sections containing information relevant to alternative replacements to the beginning of the .init section. This information will need to be kept around to support dynamic mitigations, and putting it at the start of the section makes it easier to conditionally free it. No functional change. Signed-off-by: David Kaplan --- arch/x86/kernel/vmlinux.lds.S | 98 +++++++++++++++++------------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index d7af4a64c211..e0db3f4c97df 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -211,6 +211,55 @@ SECTIONS __init_begin =3D .; /* paired with __init_end */ } =20 +#ifdef CONFIG_MITIGATION_RETPOLINE + /* + * List of instructions that call/jmp/jcc to retpoline thunks + * __x86_indirect_thunk_*(). These instructions can be patched along + * with alternatives, after which the section can be freed. + */ + . =3D ALIGN(8); + .retpoline_sites : AT(ADDR(.retpoline_sites) - LOAD_OFFSET) { + __retpoline_sites =3D .; + *(.retpoline_sites) + __retpoline_sites_end =3D .; + } + + . =3D ALIGN(8); + .return_sites : AT(ADDR(.return_sites) - LOAD_OFFSET) { + __return_sites =3D .; + *(.return_sites) + __return_sites_end =3D .; + } + + . =3D ALIGN(8); + .call_sites : AT(ADDR(.call_sites) - LOAD_OFFSET) { + __call_sites =3D .; + *(.call_sites) + __call_sites_end =3D .; + } +#endif + /* + * struct alt_inst entries. From the header (alternative.h): + * "Alternative instructions for different CPU types or capabilities" + * Think locking instructions on spinlocks. + */ + . =3D ALIGN(8); + .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { + __alt_instructions =3D .; + *(.altinstructions) + __alt_instructions_end =3D .; + } + + /* + * And here are the replacement instructions. The linker sticks + * them as binary blobs. The .altinstructions has enough data to + * get the address and the length of them to patch the kernel safely. + */ + .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { + *(.altinstr_replacement) + } + + INIT_TEXT_SECTION(PAGE_SIZE) =20 /* @@ -243,34 +292,6 @@ SECTIONS } #endif =20 -#ifdef CONFIG_MITIGATION_RETPOLINE - /* - * List of instructions that call/jmp/jcc to retpoline thunks - * __x86_indirect_thunk_*(). These instructions can be patched along - * with alternatives, after which the section can be freed. - */ - . =3D ALIGN(8); - .retpoline_sites : AT(ADDR(.retpoline_sites) - LOAD_OFFSET) { - __retpoline_sites =3D .; - *(.retpoline_sites) - __retpoline_sites_end =3D .; - } - - . =3D ALIGN(8); - .return_sites : AT(ADDR(.return_sites) - LOAD_OFFSET) { - __return_sites =3D .; - *(.return_sites) - __return_sites_end =3D .; - } - - . =3D ALIGN(8); - .call_sites : AT(ADDR(.call_sites) - LOAD_OFFSET) { - __call_sites =3D .; - *(.call_sites) - __call_sites_end =3D .; - } -#endif - #ifdef CONFIG_X86_KERNEL_IBT . =3D ALIGN(8); .ibt_endbr_seal : AT(ADDR(.ibt_endbr_seal) - LOAD_OFFSET) { @@ -289,27 +310,6 @@ SECTIONS } #endif =20 - /* - * struct alt_inst entries. From the header (alternative.h): - * "Alternative instructions for different CPU types or capabilities" - * Think locking instructions on spinlocks. - */ - . =3D ALIGN(8); - .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { - __alt_instructions =3D .; - *(.altinstructions) - __alt_instructions_end =3D .; - } - - /* - * And here are the replacement instructions. The linker sticks - * them as binary blobs. The .altinstructions has enough data to - * get the address and the length of them to patch the kernel safely. - */ - .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { - *(.altinstr_replacement) - } - . =3D ALIGN(8); .apicdrivers : AT(ADDR(.apicdrivers) - LOAD_OFFSET) { __apicdrivers =3D .; --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012062.outbound.protection.outlook.com [40.107.200.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E22BE279DB3 for ; Mon, 13 Oct 2025 14:35:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366155; cv=fail; b=CQ9pp513J3+haKc/YpbCAQ2xyZ7G+G61/4QFHezBHQSU4NEWNhNIb7CUiMXh/WQusCR9LShClfrvy5/Z3I1eWzao7kYpu7i6h51FD3RX/alNLwyDOo9QJwsLCMAXJbIcAVqjrP9NCyWLLKjd0lWyak6175bDC5vgPzyAWe0g2B4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366155; c=relaxed/simple; bh=vtwm0/vFFqxTkTkjp8qwLi9BqVRfO0fiOSe24b4hfDY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YWhPIEJ4sy9Nd6ztUyBfuxwtmGTJrh8ayLWLbcgiZDfBe8homiSc4CkeODMTRdA9/eZq9ZJ7l8+2XI280rYrJ5oNkl+8DtqDk3JdyOgZTvpVgAujcvgb85O3Od26AUHyPjJV9OgXn0O1qeLVPLOfHFkUS0rJ8Sjb3pp2nhYsrkM= 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=trPpixEr; arc=fail smtp.client-ip=40.107.200.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="trPpixEr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bUx3CRgCVvpzD38y1WivoPXFJs8uQwF6PICJuFejqfzYMfl3kqx7wKSPeWikkLsUFZ7YiL3l9DLdDKyLfkLl+HpIb7Bk6nJcd13MoAGp73/bYcXNOVBISkKf4sbG2h/inxuWZK3y3xz390s/w0fy+Ixcm4/QVGrCVNUvSbtMs8zCEyaRgHHtsKlH2IFxTWuFqiTysL3P2CAPCTjl8ijllPukDnwLQzqFacIZk7oBpMm21gwNzTGt/GSWxDXd70AnCTE9CaHbjsJwnVJN9HOl9gvY49zV5nRNCQOJV2KgsB1NJuVqkOkKzOxOjvrMqElDE64qJ6gGKgZPsqu3gzSOHQ== 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=OPyqc9HzOy57ns/cjqb6p2zU3iK5TiOPyOx2S2bYALI=; b=pDOaF6QpOoTAZNGyi59JamsU9AouIYjL1FwZELP8zXFsosvZQzEYW4lO63Wa9azEaoO7v6sa+KWK5wImGNYH7vckjKfzbWdo4A7oO1v/1BmnxBNKVlvQdQne6m7/77f5tgTFVR1PRfJ/OPPHam+u3E+hocgdG0VEUVX7TsjMK9G529Op9CTb6zRR1X+zW51Mk8J/4LEhcJZBtR31Z4VjattYzOI3oWTjF47iB6nlTaWRoNgNLJEpdmYuJgxR+Vlgi5RbCoXkhMORj8BIW0i33PyfanIqIt22CdVR5OrYvAK+PUrpAhVVvfIudcFhB22r43gIZEVjgB0iEIy7RPs9lw== 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=OPyqc9HzOy57ns/cjqb6p2zU3iK5TiOPyOx2S2bYALI=; b=trPpixErXyf9TUSwti7pna1WpAazgRS2SNplig7wN+aNVhybJrpXEKtydDYYuPDrwo8xhERTKEqMaUQNqn4fM1BaOjdhQGfVJGVb7c68uvLjydTPJvkHJRrcRYJJVdgf8++YIjCvyHTuhMbGHJbsIXoB9p3J7iH1RyNmU6eUuTw= Received: from MW4PR04CA0115.namprd04.prod.outlook.com (2603:10b6:303:83::30) by DS2PR12MB9662.namprd12.prod.outlook.com (2603:10b6:8:27d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Mon, 13 Oct 2025 14:35:50 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::56) by MW4PR04CA0115.outlook.office365.com (2603:10b6:303:83::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:49 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:34 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 24/56] x86/vmlinux.lds: Move altinstr_aux conditionally Date: Mon, 13 Oct 2025 09:34:12 -0500 Message-ID: <20251013143444.3999-25-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|DS2PR12MB9662:EE_ X-MS-Office365-Filtering-Correlation-Id: 26cdb2ea-c964-438a-9dc7-08de0a65ce39 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?Eokk1yoLTSBskAH/Sp/x7nRP9gHGGD+QbYPY38S0Bh6uAypGbXN44sTp3kSz?= =?us-ascii?Q?425u8i0W3Xm5DItWP8dFf+zAuDWMqpRKHrEMu6fhlnk0fym2UUe2Iu4TOnHD?= =?us-ascii?Q?nn3tZ2kNLWqmPLQkwkIAMGg3W7aNMnQ29K4xf+tP0T6qL8RzDZFKJcAMrlmI?= =?us-ascii?Q?IY62q6PiGlMjyQKV8IKHtQU+grUC3C7gPclf7YnWe+55mY9KNfFW9z9yKGKr?= =?us-ascii?Q?qiL+UNnRSoStf+HgPmASu3AD5xkER6aD2u/lQbR4uZzZqkQW6gDlb6T4zqWC?= =?us-ascii?Q?zFKUzdvnJOnn97U+zn7vovCSxLGngvWy8V5F8lhZy7PsQJo22WdBbXBOhUxS?= =?us-ascii?Q?IIipuNyrbkW5jbSNGsmkZCzeEe9HAQ1i0jljFCyNZ20csy8nZpMFVJWPox9J?= =?us-ascii?Q?puDhsS+oxUPOr4RsZ/mOd445fm4qGd0CRYBV+gMDeqEByBa6BgCz87FpV3nS?= =?us-ascii?Q?lE+Ztg1SA+/NUYLCMe8bCtlTv8dNrrSDPl2zT790P0bgsEtwHnDSRJh66r/H?= =?us-ascii?Q?zcERWDSYuLMdjVlNGC6VSrYHJKo4ht8dxQoPuTEGwAQW9zNA2GnQfYq5ebHE?= =?us-ascii?Q?nyCkbPAKZju8bM415Dz1+wIap4KzLYQz3+FSBaud2YfB6Aoor4ZFxEVWFm77?= =?us-ascii?Q?UT1rXAi/VhdvLaNI6CUOXTRbiNpmtbF9/tzFMzh9SkJHPhBD/KiLppksl6Yk?= =?us-ascii?Q?tPtlL2dBI1XpVUm3MthmIFtc3HkU7W7Z05OWrRK+dwXPUDZZuYciv0lVlDRj?= =?us-ascii?Q?qjv/zhHwDO9gihLPr2K+PKswU/RNN/EnH6WPiwxbQ2ANzS6GTQxSsOVRUAFv?= =?us-ascii?Q?2RLrLqXRgwjbE9rZ1XqrF0aIIEP3aYnMBQkTKkXlLHffy/qtKQlfZj3ztMrZ?= =?us-ascii?Q?6tr2GHZWrhoICK9tEUIzJvVrr4slUaxTqYr/L106+un+ef+GR6CwebcEqXkU?= =?us-ascii?Q?Oh/Drc2FBqDLuhiS3pk1+JWG5LZKidzZEM0BsDMora6c1QD7vrNaus/DegD4?= =?us-ascii?Q?XJ7bMVJQDOa2n27Gy5z0cD4BgimF5xRbWfRrqy+0ZP4aKoWDahnqXKSgjHoe?= =?us-ascii?Q?b6+BjINznOyiip7vxBSP+BGPx6czYHcv2uMkIpqO1Q6rm2bZq/pqf0+3NZ74?= =?us-ascii?Q?4nSS721pJghADXS/DbkvHX3T7W9DXilE9boh1FE7mk3Gbv0sPP/f6ZlJK4L4?= =?us-ascii?Q?W3ktoSOQdVnI0afEdzKURjuxvwAHRh8+FoBI/jT4wprTyT0yQLgCWrMTmHGg?= =?us-ascii?Q?p6iTyrf4UBk2ADtF6XqMNnwIOFuffMHFN2sWKS0rCRJ4DLATNCakZ0t8piW2?= =?us-ascii?Q?nzswRujzXKjFo12xdmJ6lfNMEN0Mxqb1ujlR5FCIpjLdkvLYsHHz4Mmbsj1B?= =?us-ascii?Q?/KfV1rbfc4H18aIO2TtzuZ9ApMltoiiKvQR/puAtHqO02FcKoAGgsCdpJZ9x?= =?us-ascii?Q?fcVaGEXrDQ5T1P1XKSb9B5dg50lLhcxT7XaBI4DPohbcNV/Y6C6aEXo4Izuw?= =?us-ascii?Q?ytozX5tnB41oVISFLg/uIzMSJIQTmZxUAUWku4kDQjcvvQTQo4rWHd9OdIzV?= =?us-ascii?Q?EWX7rqHezAG1QB504KQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:49.9641 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 26cdb2ea-c964-438a-9dc7-08de0a65ce39 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9662 Content-Type: text/plain; charset="utf-8" The altinstr_aux section contains code that must remain when dynamic mitigations are supported. Move it into the normal .text section so it is not free'd when init memory is free'd. Signed-off-by: David Kaplan --- arch/x86/kernel/vmlinux.lds.S | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index e0db3f4c97df..c4a0bb13d095 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -143,6 +143,9 @@ SECTIONS */ . =3D srso_alias_untrain_ret | (1 << 2) | (1 << 8) | (1 << 14) | (1 << 2= 0); *(.text..__x86.rethunk_safe) +#endif +#ifdef CONFIG_DYNAMIC_MITIGATIONS + *(.altinstr_aux) #endif ALIGN_ENTRY_TEXT_END =20 @@ -262,6 +265,7 @@ SECTIONS =20 INIT_TEXT_SECTION(PAGE_SIZE) =20 +#ifndef CONFIG_DYNAMIC_MITIGATIONS /* * Section for code used exclusively before alternatives are run. All * references to such code must be patched out by alternatives, normally @@ -272,8 +276,9 @@ SECTIONS .altinstr_aux : AT(ADDR(.altinstr_aux) - LOAD_OFFSET) { *(.altinstr_aux) . =3D ALIGN(PAGE_SIZE); - __inittext_end =3D .; } +#endif + __inittext_end =3D .; =20 INIT_DATA_SECTION(16) =20 --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010000.outbound.protection.outlook.com [52.101.61.0]) (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 564A8274B27 for ; Mon, 13 Oct 2025 14:35:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366154; cv=fail; b=smm23ZFdtMxGoef7N6DYzXIibeUph5sd5a2AHgTAEYdrG3ZMzgjbymjuwhuE06KmLb7EaqOQPwFzqgebqPP2KHmltV21cL8qCO8k9vABrH18ead1FqGpMi7oni4biNsUCOViMqgEVD9V6o8yaH/vAIsSrnuvWu9ssr6gHEWTcIU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366154; c=relaxed/simple; bh=xMHEE24+jg+aEgu+enqGa1SPgtSklOIHwaxOqnZ0+U0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Y3SAZWojsXYVyDkZH7IofKRkWYvqbpFcjL/4ppiGDd7vwcVMwr6knU7+VkOLKNm0w/AS1uaOlAjPCWxojasYwHbUgGO1CDgqVfKZs+Yk/ZIanjkvb6KS8ABSjqVD4cT92gyGfWtdlwokJwuA/aGyfExIEMZSCPdUR7l12fKSXps= 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=S7UTVwYX; arc=fail smtp.client-ip=52.101.61.0 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="S7UTVwYX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=J3MO/Ttgql0BlQZfgY/MJaeIuBdUM62Q6uFAWklzlFUTpOzU66yNwzw/eqBfjY6sTePIyDkW073glkKimzseON6zgv1gzXW+Dpmsqkj7rvr0TXXmd0S3Iazlx4zg4XuoZHWgfgCl2cqLauduM1KME31U/ylxjy0B2rss51ufOx0hFwSlbkzyeId0BfazfvL3MoVo+z4c2EhofZ7ckRncqTMcrj1md8388szJgs5c0RQvUuyWaqy21+5YMJgvXW+lPBgTuKgIa1+MuDAGoac/a1a5sNHQJOYDj+igDNYZgUPKc3mzq/sOySlqwfwuhTj84sA+SIYWsULzDVKLg8zCig== 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=exXgxy3IV6RFtQAj2hyBChbN5KJmz01K98kkBpOc0Ms=; b=So2V1/bqkzRKo0pFmHJcEitUIfwJa2U9nVeN6mUDSCOAHEHD8OPEz6PRpzsiAV26lZY9Jn3HHIUxNDDVe5hv67GiAf12po1d00GTxGwsChvs3qHlPdCS1hFJS2uDfXhlM6A1NQanRdVaObTo//iVOf2PJm8NZUAMr4cNoHqqvGPpexaFDo3G+UhJimU8nd/MNjoxtzCAtjXmUDJCbrErbaKCK9Xzh0nQ2+zu4Uu29kYLieYezqi5CE7dbuyhFwHF3uw216DNf9jHTBsGRcrrYX/tfGCgvyvGamBUYBw35+h6Xqs2nBIqhRjVdZUA2KNKNiuWCjMkHmQYLvRY28ntlA== 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=exXgxy3IV6RFtQAj2hyBChbN5KJmz01K98kkBpOc0Ms=; b=S7UTVwYXeUCLcvHGPghVL289zcqVta4dzRNH5gO6PuhQSW39Nk/3Zrlr5P1i0JgxVhNf62mYDuS+RbVv+eEPBRsXckn/0bR/q4nCBxaDGCSQYoVFJf/6QssVZx9+VjIh1/4IWVXQxJSzYCiexGs94YnuueUCpUcnfaIteXAASJE= Received: from BY3PR10CA0002.namprd10.prod.outlook.com (2603:10b6:a03:255::7) by CH3PR12MB9078.namprd12.prod.outlook.com (2603:10b6:610:196::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:50 +0000 Received: from MWH0EPF000989EC.namprd02.prod.outlook.com (2603:10b6:a03:255:cafe::53) by BY3PR10CA0002.outlook.office365.com (2603:10b6:a03:255::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Mon, 13 Oct 2025 14:35:50 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:35 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 25/56] x86/vmlinux.lds: Define __init_alt_end Date: Mon, 13 Oct 2025 09:34:13 -0500 Message-ID: <20251013143444.3999-26-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|CH3PR12MB9078:EE_ X-MS-Office365-Filtering-Correlation-Id: 205faee8-a375-424c-f096-08de0a65ce87 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?ROv1BlBdZODDYXl1DwhDVErVMk3DiPf+z4iiCusJykBoF/3d/hfLTusX87Q8?= =?us-ascii?Q?8mtBVUxFdD2vXcAufKioGV/d2O7gAJQKWSg8PwuxxlnsHWUMyGr/ElFMCUmj?= =?us-ascii?Q?1QxHL1BxmUc0a+Wz8zUAB4OQCt8oOI7CqRcrZlTsAIOzibQFZZI1Y7bi/wly?= =?us-ascii?Q?WPr7Ah/InzCFuZ4O3g1j3k/9fm+Y/bR5AyjgWSstKgC21CNuFPts5n2OJeoN?= =?us-ascii?Q?mD/xXVzmNZnG5o0KHNkap0JkCkxJgWxhx1LslWgWIs8QY9tp6D7u+bv/8l++?= =?us-ascii?Q?g+1UUL8T9/gevtJbuJ6UtMFufq+wzAxAywbOJbc2ZLjsd2fcx/jPsrrMTXNM?= =?us-ascii?Q?hGTT2x2uh6uAKsFvEWpk3z0RS9CQ3o1KSvn5iaewrIeCXtCiotVYfXTS1D34?= =?us-ascii?Q?E8xkawei9tBOB40DgenSujUG8vc0u1QaWPW53p6XftNfRk8Bn83cia/uGJPJ?= =?us-ascii?Q?SrwhaDDjqCt3ocDjs3s407iErvuIIlvbjvlK4zOKqCPUmA1KBXOtkeBxgVmZ?= =?us-ascii?Q?r36C0FhJv4SVitDZpzxzJnBozrzO1I7K2Jt4hR8cdnVs5cGmoqxqauc8V4qG?= =?us-ascii?Q?nM7tt4acebZLnsVRo8D7vBmA6gqYWV27KbCGrSfkvGTOl2if3+TZXKo+rA1l?= =?us-ascii?Q?Hs5lcSk3UdwaVTS41czsX/oApFhRfZYvS3xd8LZiftT38zlwQBY6q7iugNE+?= =?us-ascii?Q?s5b4gVEqYm2AD5lv3D6VY9XmAi1e6TJkkMulYOz1ALF7HP0RpQulONG8mtuC?= =?us-ascii?Q?FU+yAkQMxKDPd/P4NZ26DHOIVdeGsCdmCvoEdybwtoDgrRQMH93K0pK8XJ+f?= =?us-ascii?Q?HdjK6gRcFeGAyC7YM1eUxj7jBunMKm+/0StP9mPZvRNdywin4a2g6Gjewq7k?= =?us-ascii?Q?0MolIURZ1gtQYab48XKytiYM7FmLfnEq6hFlJP9jqcXLBqEcZRLwaWbLsM0b?= =?us-ascii?Q?8GhJEW9c1odhkhRzv2sy3dZoCrHJFlmokMdSoA4UqUaK9sIJHETHQUBZ3Vap?= =?us-ascii?Q?4C78b9uoRHt/Fpc6xEobZNMHeMh1ejYQK5YyJXIoluvB+QsqXsRFyLI+jxMp?= =?us-ascii?Q?sZFC6aY00U3LQyf936FT0VMwWWXc/GJq5pTKIfcX4Tc7EoVmviHVlETSOIvf?= =?us-ascii?Q?eiWKU7J7AwXaRFgboebw1gcb/pkUD9txcAesYTPTEw4SBV5ZKWuDPv93ZTDz?= =?us-ascii?Q?wlzwqXkVsP7uqM+jYWRyBxYZ+V5PR5/XIjbO6YHh/9krNLYl8PjZ8fBt+G1j?= =?us-ascii?Q?2UNaOvB4GEjrKAgxSF3IPCMlUxP3W/l0dPck8U/jKJK+DdpLYtK9Du/vqZ0X?= =?us-ascii?Q?AgMn9zH+BCVSNsSUf6UfLFBPH8RMNtJ+098KtNTtrp58cZDzG3JW/0ZTC9OF?= =?us-ascii?Q?EH3wIMjpds2+GorMI8feNJZVhC+K7+knQOVB79BG5Kti39q8NGgw24uskgQr?= =?us-ascii?Q?j6LRXVEl3iNwLbhk3B3T8KsTpmWyVZSSx7MU81iAVgWNW1wTNBW1szsM3ZLV?= =?us-ascii?Q?mD0DOH1NODLFMbjMyFSZ/Nf2386VR0wRXrmASLMcVIhokkCVCzUDBqVn72B/?= =?us-ascii?Q?Wov1hjmxjQe4oErc7eI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:50.4781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 205faee8-a375-424c-f096-08de0a65ce87 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EC.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9078 Content-Type: text/plain; charset="utf-8" With the alternative related information at the beginning of the .init section, __init_alt_end defines the end of the alternative sections. The memory from __init_begin to __init_alt_end must stick around to support re-patching. Signed-off-by: David Kaplan --- arch/x86/kernel/vmlinux.lds.S | 5 +++++ arch/x86/tools/relocs.c | 1 + 2 files changed, 6 insertions(+) diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index c4a0bb13d095..e02044da9971 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -262,6 +262,11 @@ SECTIONS *(.altinstr_replacement) } =20 + /* Everything from here until __init_end is always freed */ + . =3D ALIGN(PAGE_SIZE); + .init.alt.end : AT(ADDR(.init.alt.end) - LOAD_OFFSET) { + __init_alt_end =3D .; + } =20 INIT_TEXT_SECTION(PAGE_SIZE) =20 diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c index e5a2b9a912d1..2054ffbf5fd4 100644 --- a/arch/x86/tools/relocs.c +++ b/arch/x86/tools/relocs.c @@ -71,6 +71,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = =3D { */ [S_REL] =3D "^(__init_(begin|end)|" + "__init_alt_end|" "__x86_cpu_dev_(start|end)|" "__alt_instructions(_end)?|" "(__iommu_table|__apicdrivers|__smp_locks)(_end)?|" --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010026.outbound.protection.outlook.com [52.101.193.26]) (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 08B0130C601 for ; Mon, 13 Oct 2025 14:35:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; cv=fail; b=iMNil0bybMGmCZXDpxzxkzoE9rzYgNRTAmdvOhTSgoqWEep9zx7uDKXqYEdhY9KgQbe0auQ79PSKHzDPscCwGwqSzj5WmNRv+hXywU37nLjzIbTL7V//A4XCN5Tj/8SP+xrQKT2mG20YUZtrapxVHhVDOId91eKw9ZzpzvMBupg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; c=relaxed/simple; bh=nncPqfm3Vrlj4bo4C7tH8tD2hcXl/ToMdoHQVaJD3xg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cliuBT7ml3TM513krdRQC+1AdcSMWRHBTYGP3XWb3mefaISG3HR/yCVXpcCA+KkkYQQkVpGC0ugMIKbonLRL2SbqXQnn06wN5bndxbfohXdBkF8WG8n+tGuijAgvsn/ZWiJ3FiikcX5kvAhqfZGOEdZmBhNznqFr8EgnbtZV2xk= 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=tHm1KAXP; arc=fail smtp.client-ip=52.101.193.26 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="tHm1KAXP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TZ4aVXht71DHYVIX0Nr1SInwaTAvlz5zxl/vPedWyVFg3yu/BGmZM1EStsi6X8fPbK8D4QNPrbBbm68Ocuvtp0GZEjkd5oXqJD1T2i+vGpjGS5R8XiG+DF1B0aeoGle2xxiBP0gVxDpXFM6yRRCx+pE6xAN+vLn7bMPWZBhhqmsWa9SLChcFDW87RQQDU8lXmtevJ942otmEBWvKyUK8b6xUxAThiVzfgnk6bB8zQEF+5mrWRXeNCA50OwR+xD3hMA5iX8+EzOPRQl8x9kk/a+VvKP6HYc0aCnMFnse5niZ2izSl40G2Dj0Heo1tuearaitJ2xqYVbp0szPDWc4cJw== 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=LRauI5YmKuKN2e0g7W72ogNR8jQthOqeMCTXIUgkTBQ=; b=E17XqBJP10BBRd7G15ExIHjGtTt+pZVs4gvC9rm2p7yfgjrY63AzmvbDzyzZ3RHWTya1Sp5ltucaCSiS69FnNX1BbF0UUPtt0/zrddai8DdhHykd04hHrbSJnpM+cPO7Fs0jvtge30vNwlGIZwu8ZNR07byOE23qZO07KmKy+HCgLHba+eZ0flC+niDGtw6I+U1IoHFYao8Nn33ZxvL/Fba2kIxQxsTy8HHd1TCK7fEu52qC3uz7mok3poMrtEuLQvMbofxiw9v3s2+JR72g/M40BW2othvCOrj7t5nM6/7GkC+CfAHR4UP4WWCkKYp4Zr6jHYx+dnjwReA2WP4pvQ== 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=LRauI5YmKuKN2e0g7W72ogNR8jQthOqeMCTXIUgkTBQ=; b=tHm1KAXP/8A8u6fHJGanaDgysxbYY+amsoicx7iAsa3fgsEqmXQ3M43ADBvoCAwgkxDOfh1j4+Rr7i4JVipOEIOwc/YF5l2Dsw3YLUONkYmIN7fDaCwNDWESeyzGHAW4+vL7ltX8yOx33WWaIsVCm/RE2ghDL+tOPDHTA/VDiVU= Received: from BY3PR10CA0017.namprd10.prod.outlook.com (2603:10b6:a03:255::22) by DS7PR12MB6334.namprd12.prod.outlook.com (2603:10b6:8:95::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:52 +0000 Received: from MWH0EPF000989EC.namprd02.prod.outlook.com (2603:10b6:a03:255:cafe::c1) by BY3PR10CA0017.outlook.office365.com (2603:10b6:a03:255::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Mon, 13 Oct 2025 14:35:52 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:36 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 26/56] module: Save module ELF info Date: Mon, 13 Oct 2025 09:34:14 -0500 Message-ID: <20251013143444.3999-27-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|DS7PR12MB6334:EE_ X-MS-Office365-Filtering-Correlation-Id: 4992a4d1-86c6-4d61-6022-08de0a65cfc9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?o9RuPUnIxpKyDou4KSNzkMo3vgse6cQo0QUJsc5XuRPTFtEhI64zSR3VlucZ?= =?us-ascii?Q?6bhRvGduM7M9I76IqpW7CYiQ+LwQH5H97UkJ74UkB8oa/7+8YfF/GVPzuPja?= =?us-ascii?Q?w8qBsc1Ta8q2SrshrhiI47/ObpXcfWYv6PInjD3u2SRVj+32P55wBaIMVAyT?= =?us-ascii?Q?6hUt5C5kkI7CEH3PpbEmiWwz39zlcUDBMULwUhp9/uEEZynamnDc3SQVRUPs?= =?us-ascii?Q?nCjK5HeR+eb4Pm1g17yCo4vQapCgVCvFOJn5Ukl3FXQp8UKB8s8TPhxIC1UF?= =?us-ascii?Q?+Y6dC0uMoIZu1m++nAgPsvrV7W155JVE4TPZrH2PGgOeoZbwMzOu4lYjjw12?= =?us-ascii?Q?El+hL4z9/1jeGkmsX3apUC7F3Lsgrl3Xsc5jxr4n9vRNatJPTDutU0HFYbwN?= =?us-ascii?Q?XXEY4es5aiUIRGtVEC7jj4W0Xz9Jc5YbdrlfgKlcltorzgWIa0GU822OrSqT?= =?us-ascii?Q?PtAsGXt7WeinELl1QhdixcWWbT6m2R+MB8MUPcO0MSFF6Iy/YRlAh4I2kU14?= =?us-ascii?Q?+aGCA4uUY+/ZMtMd6DInZDBZlalJJVmHzAglY+2hvQIrOvFmbNRnZX3rRpcw?= =?us-ascii?Q?pk62FKgvzf8gGlqIkoRtvGsIyyzFyvMiK7hUO32Suf7kx5Yc7bWoPPjWzXk+?= =?us-ascii?Q?BKJdKPcYmbgS6bGQG2ws/RExVYpn/CFm9HWBsysGTbw+WvAFRlywDFfsHosq?= =?us-ascii?Q?xX2OHV4hU8HBp98TRnZFWuNbDZ5/QyBLs6J16G0Z2cNhFR7wKps6rCK5yleI?= =?us-ascii?Q?lTxZ3jGdVq5qiiKqsb00Hp1W4hTDoSRdoHjNMj9bTqmnkrYewaH0ujjqUJVi?= =?us-ascii?Q?zHWKOv+78yKikJ/ifWYoPf01KUQPc98IN1WHYNlgHvmkq1255YbdvglVv7q0?= =?us-ascii?Q?LcawIofcCyHjc2hwDichvURiHAFZ4NtdTEpUQJ5htp9aWPRkNTTejIrbxq0Q?= =?us-ascii?Q?Rwq7Dhij1An9pUcgGzDPBeZaEF1TEvGt5YDF5ZnnyRUNyZ3xaUzOagHqpN1o?= =?us-ascii?Q?6tnqHtk16kjz6sBP3nzJSKpmtyEHq9PRSgi5q1Pmi6KFHCBnLvUozg1PIdVI?= =?us-ascii?Q?f8OB/4ZKzKWxBSyoc07HqJD6W6mxH8PmQhj5VzbD6JjpYSM5jPWrgGqn7ULC?= =?us-ascii?Q?MCeCnh/s+/EB74f7a/6UwmKKkkjjNYHBc/KGkO9BwSy8tkFpApvk1UyVDJL7?= =?us-ascii?Q?ryVummrjEGDwsPkw7QQCEAb+rHVNZEesCR1Kv2041bATRLdmjXj3eNgZI2ks?= =?us-ascii?Q?cHpurAmcbpMI+vU56bPn17A60FxX6zp6g40mTELfxhMGrNY7BU6beYUMRHZO?= =?us-ascii?Q?wz7i4DPzzXDbM0ONGp6bfMVx6N4PTpamEwfoJMkr/zphZzLYN+yJ7rzii1hf?= =?us-ascii?Q?Dn/5nHLKf1Ccno+ip+arBB+SpvdX55XCqEk00u+KRCcan+HVc3qi9puWZ7io?= =?us-ascii?Q?QokxwttXhuESHmK5/L61S9WnQwXepc2Oe93jlU34eYHshZHAvyLaiJRgjhBN?= =?us-ascii?Q?leVjY7Y4R6REcekTc3o0YkzwkYZFUCUk6b1VJYTyVe10+ARQZAxs/zBpHIFB?= =?us-ascii?Q?b5AzIATzsBSyvzYxqU4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:52.5847 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4992a4d1-86c6-4d61-6022-08de0a65cfc9 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989EC.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6334 Content-Type: text/plain; charset="utf-8" Re-patching of module alternatives at runtime requires saving the ELF information about where those alternatives (and returns, retpolines, etc.) exist. This information is already saved for livepatch modules, so save it as well if we may be doing dynamic mitigation reconfiguration. Signed-off-by: David Kaplan --- kernel/module/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/module/main.c b/kernel/module/main.c index c66b26184936..088f9399af11 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -3491,7 +3491,7 @@ static int load_module(struct load_info *info, const = char __user *uargs, if (err < 0) goto coming_cleanup; =20 - if (is_livepatch_module(mod)) { + if (IS_ENABLED(CONFIG_DYNAMIC_MITIGATIONS) || is_livepatch_module(mod)) { err =3D copy_module_elf(mod, info); if (err < 0) goto sysfs_cleanup; --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010032.outbound.protection.outlook.com [52.101.56.32]) (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 01C683090FB for ; Mon, 13 Oct 2025 14:35:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; cv=fail; b=iZ1/BbD3tRKyOIBxwTQB0yJB28tHpCQvWA8jLR1+tAqDguQG1NbBiBIsaA2iJshCCWWFIw45tZz2Pl/IEPRLg5W+pcfBr31QPI8T7DmbPskAHwLawEZ97sovW0BxEAfuVFIwOYDrDOic9AqyVkVB1Wm066joewHQg/LaoTNgMGQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; c=relaxed/simple; bh=C/KtUEUHzlOvTynESaOS4tkML6kExob+y/0Miy1nN84=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XO6K6lDzl+bz9AQXfyf2oxE3ch/PDrygk48wuBVGaIHRVF8aup/1lIMVy4CXituEmd4/+idsfCf3iJP32faCfcBuIWqyWpzPEBuxhW5lX873ThzzbxEdflQxellAsK1Fznj1kHMLw29rJxRlHgV98zFJxgQDhC+eiPK4LCY+Hr8= 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=j0RXrwI7; arc=fail smtp.client-ip=52.101.56.32 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="j0RXrwI7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uaepYwaE+A39v2W3bx8glj+ZmA/7bkc9Tmlb9i0WHLWuTHcgtOH9dlwMnU3pau85PnZcreG2SjPb+Wij2c9lpSdwrYnba6GuTKat4wjCS7YQgHhTz2i1eEbF0AG5flr8fxtGiDR5Y2l/JH4BhQe34QHM+wHUrIOHFx5IHJ7BIC0sIsgbn5dakgaxEFP8lKGMDsbzXK4n26os/MWQ04XCJmPxsq1rikmWDtnbwdnUjG/d/73gHlSkFL7FIG6JewT3x95ynIrt/pDFsxPoH03KSQP2hHMffnQeiWdqGOT+PCpBkdPA0M6c64Qxm1wQQcTFjEVano0kuJFpeEg+lFbk8g== 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=ZbCFpsUFF7imEsdKB/3boU7ERFIZ2V/HeOVORv/aKxk=; b=RYrcZFc6Y7CKxFu7IUqB/70Eo4Zxv8VnawDkFmgW3hJNsRki7j9kakBuiUaZgSheTJLHSSjXmkwNd0MCuy7yNDpdn5Fh779SCnSgSnW5qqc8WbKNPBxB3IRqO9KO5g+5kAPc35OM7iCEHpgavfAqbZuc3q/9hn+vfLZkVoRnz0ZEWpr4kyqj9KbI4B4oQLVGnODF9yV49vVyF9ANoSSGPCTr71bzSvwyiRPfbXRg/p5vH+6BMcVm9VIYlhYodH0GNMaRTOo/lZ14Azq+/QRVumpd+cwXLnrxmKVV/B82Ogmab9O7o5BaNAv6/OS6Wq3uco71QaZWJu+vZMbITg28aQ== 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=ZbCFpsUFF7imEsdKB/3boU7ERFIZ2V/HeOVORv/aKxk=; b=j0RXrwI7OAH4mgnffXutBdS/E3+iQU5Mux7Gh7ZXaYEx8PXV41T/RABZE8PLnmhfpiMq2/qIH4YJOvhVA4AqZIAI0T7tNVW5ygt7Ml36hRL437BpIf593Wn5irJBGE+Z+2p9PcE0OorIapynTlDQdu3i+TzCAzjaSZgNFD1GU2g= Received: from MW4PR04CA0102.namprd04.prod.outlook.com (2603:10b6:303:83::17) 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.9203.12; Mon, 13 Oct 2025 14:35:52 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::c1) by MW4PR04CA0102.outlook.office365.com (2603:10b6:303:83::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:52 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:37 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 27/56] x86/mm: Conditionally free alternative sections Date: Mon, 13 Oct 2025 09:34:15 -0500 Message-ID: <20251013143444.3999-28-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|MW5PR12MB5599:EE_ X-MS-Office365-Filtering-Correlation-Id: 93ff8443-75c5-46ab-a035-08de0a65cfc8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KlBrC6eMVQTQUNyLMGh/njtxD+3I+6HBTKgvocJOiuOx367AFkH1nq4lfHzf?= =?us-ascii?Q?yI8Gfdo+PusiMK3dvDJLgnP5InL4IEGLl3urRvjEiU89pumTPgqMxdr71Pxs?= =?us-ascii?Q?L549gLWV5ALaLifk79bHmfZCBuP9Tp0HfziiXoR+qXEXDeJIK4U7KcwGDZlg?= =?us-ascii?Q?Ne+N5zikciSOqo5ZfKITM1Wg/XpnSWlPgSClLa9Dm9sykCszMbs3yobmpRn3?= =?us-ascii?Q?oAXo6gzLaYG3u0XaKxRSjd/cn18hW3S7o1des5+MKFF36EUObWoc10X2DeHk?= =?us-ascii?Q?LxsN4e9BbA/erqGDgv/pmlPbNxZeFXxKRsbYNz/Fhk/Znip9Cj2FM+aIXUwk?= =?us-ascii?Q?oFv/MVqgO0M0bGMYMbO4puPlIi6fESvU7w9d50aaRtjq+fYhDZ2yF2z2QUIY?= =?us-ascii?Q?JICmyKGzWKdwLVIfM8iAX3AUyL5ZcibfFWAlF10nZO8llxemvI42Qapx7YOj?= =?us-ascii?Q?U3DDm+5tNiWLoXmhRVPfneAW6L08I9y2TExaA2dzRNh3Egz7Epe/mmjYUpLw?= =?us-ascii?Q?gjYREYfYoNvmRnivUtkHPDYfajUblqpb1qh92JQZQydMVdMVhOSHXxg5Kdsq?= =?us-ascii?Q?iLBdp8M5OxQk36quVZGWAZmqh/lW6derzGGE1Wx0QP0WpmrRp48Kpx3BkFBn?= =?us-ascii?Q?suorCkgB3TDxs5YEQkYHpczVUE/fuFX5gucuLJPW8cpeEdB7Dx1wzK1ExwoH?= =?us-ascii?Q?mRq2GnAuABaEe1t9Nz3Lu9hpfQ9XdOxhuIgTIDgWP9jvVX9OMuFQwhtEqBT9?= =?us-ascii?Q?blFNVwqvsXMzrl9Gqsj6jtCuruGZM9kxA8duQs99lJpM9zzSsBSa9hkqI33x?= =?us-ascii?Q?pm7plr4VfsAGpIFZDzLH1kCT/O7PHEYDgbUpPfBk0YIcdkF8LzSb72i5AvXL?= =?us-ascii?Q?VuGInkz4UKio5bmujfZjEhY2zYNIp01HE4FSoBCA58/nw/+5Pn9ySBxGDRxf?= =?us-ascii?Q?P+s3WOWUZDhJWWDrlYiGuGiLpmYmO8UIE6Cll/VRnTWt6V9IJkQaW6OtuA4R?= =?us-ascii?Q?iKcsXfhyXimO6byVOFh/3eW7fBBcIQ82kD2UlG29w2/wwL38KB762zLa/IhP?= =?us-ascii?Q?RVJk0kaYspNL/uB2yhPYKd7wvF02sbV/UOW2DZsCkWLGYWXmp+LJyIVQea+I?= =?us-ascii?Q?V0GQIkUavwWPQhjaaftBFbZpQePtXKXPqh50aIbFpw1Olc3vQrUz5FSkj+Df?= =?us-ascii?Q?nXFoH3uKTXj6L4RvJJPgcLQrQghyd7iANEJvYjKudhdYPK1DzdDzrJpCevh+?= =?us-ascii?Q?d2DHNJuFXV9qVQXYW8qFd0ob+Od5rx92Qp676kdxIU3zUMnpxWivUa9Uehls?= =?us-ascii?Q?JgG2jleyGaw+X57mz84+Dl6MpCT+JxLo2c1bSlP5VsEIrgVKQiw1pUz97sYi?= =?us-ascii?Q?DjPDeH6BtesIuwW5MqHAEsjw6/9QEi65xs+0OLjX87HfosIVeBT7bLwHqA0p?= =?us-ascii?Q?EutTqpzuVo4vSGlPKXLqoImeP4LnPHXIa99ShuSPJRquu/d3Zc6IVu1LDSVy?= =?us-ascii?Q?RbKXR9vIBcEjiAE5qdjNZuUtmX1pB0osKG8BxH5vgl7ffUBGybOx9K6XPbje?= =?us-ascii?Q?t2PJQF9ngqzhvblDf14=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:52.5797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 93ff8443-75c5-46ab-a035-08de0a65cfc8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.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" Keep the alternative related sections, located at the beginning of the .init section, around if needed. Signed-off-by: David Kaplan --- arch/x86/mm/init.c | 12 ++++++++++-- arch/x86/mm/mm_internal.h | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 8bf6ad4b9400..8dfde4889a09 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -977,8 +977,16 @@ void __ref free_initmem(void) =20 mem_encrypt_free_decrypted_mem(); =20 - free_kernel_image_pages("unused kernel image (initmem)", - &__init_begin, &__init_end); + /* + * __init_alt_end is after the alternative sections in case we need to + * keep that around to support runtime patching. + */ + if (IS_ENABLED(CONFIG_DYNAMIC_MITIGATIONS)) + free_kernel_image_pages("unused kernel image (initmem)", + &__init_alt_end, &__init_end); + else + free_kernel_image_pages("unused kernel image (initmem)", + &__init_begin, &__init_end); } =20 #ifdef CONFIG_BLK_DEV_INITRD diff --git a/arch/x86/mm/mm_internal.h b/arch/x86/mm/mm_internal.h index 097aadc250f7..e961f2257009 100644 --- a/arch/x86/mm/mm_internal.h +++ b/arch/x86/mm/mm_internal.h @@ -29,4 +29,6 @@ extern unsigned long tlb_single_page_flush_ceiling; void __init x86_numa_init(void); #endif =20 +extern void *__init_alt_end; + #endif /* __X86_MM_INTERNAL_H */ --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010009.outbound.protection.outlook.com [52.101.46.9]) (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 A08B63093BF for ; Mon, 13 Oct 2025 14:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; cv=fail; b=V7L19LlEHxWRKvUv02gDGvzMrV8Vgj8rTbuP+yuTVUJrRMGCY3bPZaXf4V+tIUVEs3M2U929SUbKJPmkdp9DcYUfthZriRv7lk5WttikkZezcVd/GPB/eFhZos/T6jHE8vPT7ToJdWI7TIhqbhxem1DlVEN0Bn1BqBSAMIh46GU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366158; c=relaxed/simple; bh=Bbl8kCX6J85MCj8dKpwqiYhLV0vu+MTlLMpDxN8iRm0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eprCszQ1XagYtXY25WR8ltLLqFacpQeu8Xt+UEkKfkcn563wW3ow1DPXYwprbvdhem7NdybdO0oRAnEN+lO4nyYp5Lux4862G1C+L7R1OtS7HAOfHigdMBbXWqKtVFxlknHR+k685q1lgQfPXgQEge6oNXX8yRfv5xSJK3veK3Q= 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=w3NFEseo; arc=fail smtp.client-ip=52.101.46.9 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="w3NFEseo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ha518TI272SL1r1CwvpiSDKcuq7eFlg1a2I3/6EOga+4jtLTbxv7XIuNcJKauk6BnQBDDWtJ2kzL05GRJQGGxXA3tQKkzTkVXQ8wujHXag0yWRaY/T01e/C111heB70/mP2awT+ai+9I5SojMBbp+XA/xSFyM406b4rYERZmOCzbT1+MXuHXerN5xm9K32RYkUcOcjsLdzvZpnJM5s6H5XpGPKxVBA7aB1f9kVPaYzn1Yp602rFSOj4m4EnzB2GlhfLOfZHC7/Oz0wfMuJS6dPBMR08EyLmXBMcqYvbcIYfM+lAp0ynMA6IDGNVpoduMTuJIq2H2mM1q5O0nxuQgow== 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=V+wiqbSNZBc4ZwWhkNOx+S3w6yR5lYK9Lofu7gPSvag=; b=U/tJk3rps9O2yQFsqegQwdVzw0e/63QD8O0GnC0NHea87nkyJYVBBHqgYURRarAVdBZA0ZkxTAuJmgijATidefupYOXgMTTIhs0C5LT5DyOpBj73TZHInkS93NkvQgMfeNA8zivg6DrE3SA28VDz7Ywoc29flUgIhVmJ/CToPjtTp2L1D+PZ1WiAaZkI7ozR8WgnTAPUyaYFWtCOpT67ZCliAFn+QKIDukmAUXdw3f8WvPtFXoTuAQgJLOvjyBgq72WcldTOVTFXi2lJPVhj4i/ehoyz4gaapeptI/QL2OmMfm50emRXmyntu5vxGX0sfkk/8jjcrx05BppMx1xQKQ== 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=V+wiqbSNZBc4ZwWhkNOx+S3w6yR5lYK9Lofu7gPSvag=; b=w3NFEseoSRRnr/Sbhwa4f6yqdQ0AyFAZE/dvxoFvyx+Be80NOQkOO7LqraMyLPgLj7yrAqOTGlbqPGYYYhK8TAyxhV85bheI4nzI1jia1xoGZlLGvJ3POa5rVzXJIWwyP2U3J3+HRDZkhk7ZNxYq+NjBbB8c2n4CX22jaoxXi68= Received: from MW4PR04CA0118.namprd04.prod.outlook.com (2603:10b6:303:83::33) by DS7PR12MB8274.namprd12.prod.outlook.com (2603:10b6:8:da::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:53 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::4f) by MW4PR04CA0118.outlook.office365.com (2603:10b6:303:83::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:53 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:38 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 28/56] stop_machine: Add stop_machine_nmi() Date: Mon, 13 Oct 2025 09:34:16 -0500 Message-ID: <20251013143444.3999-29-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|DS7PR12MB8274:EE_ X-MS-Office365-Filtering-Correlation-Id: 4336cf78-6300-43dc-df91-08de0a65d014 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pWcxXQqUO7g4aFBZfqFOzq+JYasimh3hOds0uiV4CCfcQiOqlHJmIDfcdyVc?= =?us-ascii?Q?gbPpJRfeSGVJkhkKOegS5iHKiENDvqvWJtT8Lbw+OtjqM34Rs1XNuDEsvjjN?= =?us-ascii?Q?8cIR3d+0LNoZ6H2lrOdxaNgINvyBkBt1lVOC7HP3/GG5Ntl0nR8wcoao+xnU?= =?us-ascii?Q?3EvW77UqTQpkDYBWTlkmKYQmhwkkUrxBgEph8ySxOksHRilEfinC+Ym0vFb8?= =?us-ascii?Q?lKJ8/LtYDXCZ8Lwzi/txlqAExkh4hSpQcHIHArQyqTz5StG5ATBP0HtAD+hq?= =?us-ascii?Q?hTCtQ211xGBXv31J/rQ+uKtHBeI9WazusSOv1QTs5ap1VXaoxEPS2yawYQ+G?= =?us-ascii?Q?+b2m3hjVafAv1ya6WGuYPRlWLymtHHC7tLejRgELLVmeYeHwecGJM9T0LRlm?= =?us-ascii?Q?aO0/RRfQY69IJMLr5cseOp1Dh0jJMz3ZRkTbs64Dkb+vOoqRiTHiUxYeRHqG?= =?us-ascii?Q?oZo2rk2Xz7gZGnqjFZBr8Gkw88eKHUe5x6jiitvhu3TieJswmatnFaE4UbPQ?= =?us-ascii?Q?gb7oIiPfKNWT79/4WoBQe4hmG2L5EDGCZr0WRhoTmoMtewHC1RmD+rqkDiBt?= =?us-ascii?Q?GQjLJJv+0zlv5MSW9voaXAY68xXCkYDUmYdaqnsRGQmXZWHAxAyXPY+5Ja49?= =?us-ascii?Q?zPP/sqNwk9lLnpciTvRm48LYn4yqFfC3aoRjEPuYcIBUzsNo9B5SDCqiMF9P?= =?us-ascii?Q?7B7uTdhYKhi9RvAdgSo8rZ5zKKqRIpidKUadACHRSvDz01L9SohYFb2COL5e?= =?us-ascii?Q?+MzHLRk9OcPa8tbsYolD2mfauVGsj/iKojV05FO9pSopllhBb0P525ATPNsh?= =?us-ascii?Q?uNZaxFUCDPAi7Pqwo+iPvY11+dgGFpjEalA05ovD7uELMWkxWaInoL6NqhcJ?= =?us-ascii?Q?a3xdZrNTMiCq9FnDhMfFLMFMlSLRRnciNnPmoUl/pMtWAc95/Xv0XwDMvHB6?= =?us-ascii?Q?9P4swMhFeGg8Er+oPXS1feaI5LNLoV8eZ/YgRcdS9up/yjIWeRbpdhsAWOzr?= =?us-ascii?Q?ZfNknGPN2YKuCfZsocIHGzhPQE6X7y9XM5GVHPUwmr52gGsJE55JEFIWDdbN?= =?us-ascii?Q?5LOAqz1xGYvob/H6A6qJkV97T+7IrvnZAWcwOTG1NYrWyM8YzR0bJLEVDDz3?= =?us-ascii?Q?4f3j8Vqd3p0nAEdlC5awzcQ3mwIXXqwPYliS6Z/WRk4e6vkeHUgCHsL5Xefl?= =?us-ascii?Q?dL0CsUEW+H7pM2eI2ofEkJEPe42cvsQPtiLMFoLPGIgRjMqmiG1/g1Fym896?= =?us-ascii?Q?lW3Zkx1xOvGKZLALyA5gIN7X9sL1BmClo8xV6zissq0u2oZooMUdvY1PFZcg?= =?us-ascii?Q?oUY6BQ4Fck5ZiuhCxm+9Zz5ACUpqtFo02DjsTA5R6wTGP8SMDivUC/yQVt7J?= =?us-ascii?Q?tShMx/kkcRUee73egv/D/xprcGRNepokQkhfpesTF2sYKfRZQpyoZ8VzQoAd?= =?us-ascii?Q?0kcodN7Cc9bbpj/JdT1263S0sFKthVQDtjM34cbIc/XHCUPzOzUxC/WOIEUy?= =?us-ascii?Q?XGk1hwtn5EL1h8ZuZKCtjZKfyp92owa6KvYqA+roERUkT0w4hSbpXu9MbcbV?= =?us-ascii?Q?QNuLDz9WpOoZzlONryU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:53.0779 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4336cf78-6300-43dc-df91-08de0a65d014 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8274 Content-Type: text/plain; charset="utf-8" stop_machine_nmi() is a flavor of stop_machine() that runs the specified function in NMI context. This is useful for flows that cannot tolerate any risk of interruption even due to an NMI. Arch-specific code must handle sending the actual NMI and running the stop_machine_nmi_handler(). Signed-off-by: David Kaplan --- include/linux/stop_machine.h | 32 +++++++++++++++ kernel/stop_machine.c | 79 ++++++++++++++++++++++++++++++++++-- 2 files changed, 107 insertions(+), 4 deletions(-) diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h index 72820503514c..452c45640012 100644 --- a/include/linux/stop_machine.h +++ b/include/linux/stop_machine.h @@ -141,6 +141,29 @@ int stop_machine(cpu_stop_fn_t fn, void *data, const s= truct cpumask *cpus); */ int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, const struct cpu= mask *cpus); =20 +/** + * stop_machine_nmi: freeze the machine and run this function in NMI conte= xt + * @fn: the function to run + * @data: the data ptr for the @fn() + * @cpus: the cpus to run the @fn() on (NULL =3D any online cpu) + * + * Like stop_machine() but runs the function in NMI context to avoid any r= isk of + * interruption due to NMIs. + * + * Protects against CPU hotplug. + */ +int stop_machine_nmi(cpu_stop_fn_t fn, void *data, const struct cpumask *c= pus); + +/** + * stop_machine_cpuslocked_nmi: freeze and run this function in NMI context + * @fn: the function to run + * @data: the data ptr for the @fn() + * @cpus: the cpus to run the @fn() on (NULL =3D any online cpu) + * + * Same as above. Must be called from within a cpus_read_lock() protected + * region. Avoids nested calls to cpus_read_lock(). + */ +int stop_machine_cpuslocked_nmi(cpu_stop_fn_t fn, void *data, const struct= cpumask *cpus); /** * stop_core_cpuslocked: - stop all threads on just one core * @cpu: any cpu in the targeted core @@ -160,6 +183,15 @@ int stop_core_cpuslocked(unsigned int cpu, cpu_stop_fn= _t fn, void *data); =20 int stop_machine_from_inactive_cpu(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus); + +bool noinstr stop_machine_nmi_handler(void); +void arch_send_self_nmi(void); +DECLARE_STATIC_KEY_FALSE(stop_machine_nmi_handler_enable); +static __always_inline bool stop_machine_nmi_handler_enabled(void) +{ + return static_branch_unlikely(&stop_machine_nmi_handler_enable); +} + #else /* CONFIG_SMP || CONFIG_HOTPLUG_CPU */ =20 static __always_inline int stop_machine_cpuslocked(cpu_stop_fn_t fn, void = *data, diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index 3fe6b0c99f3d..d135f32528e8 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -174,6 +174,8 @@ struct multi_stop_data { =20 enum multi_stop_state state; atomic_t thread_ack; + + bool use_nmi; }; =20 static void set_state(struct multi_stop_data *msdata, @@ -197,6 +199,42 @@ notrace void __weak stop_machine_yield(const struct cp= umask *cpumask) cpu_relax(); } =20 +struct stop_machine_nmi_ctrl { + bool nmi_enabled; + struct multi_stop_data *msdata; + int err; +}; + +DEFINE_STATIC_KEY_FALSE(stop_machine_nmi_handler_enable); +static DEFINE_PER_CPU(struct stop_machine_nmi_ctrl, stop_machine_nmi_ctrl); + +static void enable_nmi_handler(struct multi_stop_data *msdata) +{ + this_cpu_write(stop_machine_nmi_ctrl.msdata, msdata); + this_cpu_write(stop_machine_nmi_ctrl.nmi_enabled, true); +} + +void __weak arch_send_self_nmi(void) +{ + /* Arch code must implement this to support stop_machine_nmi() */ +} + +bool noinstr stop_machine_nmi_handler(void) +{ + struct multi_stop_data *msdata; + int err; + + if (!raw_cpu_read(stop_machine_nmi_ctrl.nmi_enabled)) + return false; + + raw_cpu_write(stop_machine_nmi_ctrl.nmi_enabled, false); + + msdata =3D raw_cpu_read(stop_machine_nmi_ctrl.msdata); + err =3D msdata->fn(msdata->data); + raw_cpu_write(stop_machine_nmi_ctrl.err, err); + return true; +} + /* This is the cpu_stop function which stops the CPU. */ static int multi_cpu_stop(void *data) { @@ -234,8 +272,15 @@ static int multi_cpu_stop(void *data) hard_irq_disable(); break; case MULTI_STOP_RUN: - if (is_active) - err =3D msdata->fn(msdata->data); + if (is_active) { + if (msdata->use_nmi) { + enable_nmi_handler(msdata); + arch_send_self_nmi(); + err =3D raw_cpu_read(stop_machine_nmi_ctrl.err); + } else { + err =3D msdata->fn(msdata->data); + } + } break; default: break; @@ -584,14 +629,15 @@ static int __init cpu_stop_init(void) } early_initcall(cpu_stop_init); =20 -int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, - const struct cpumask *cpus) +static int __stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, + const struct cpumask *cpus, bool use_nmi) { struct multi_stop_data msdata =3D { .fn =3D fn, .data =3D data, .num_threads =3D num_online_cpus(), .active_cpus =3D cpus, + .use_nmi =3D use_nmi, }; =20 lockdep_assert_cpus_held(); @@ -620,6 +666,18 @@ int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *da= ta, return stop_cpus(cpu_online_mask, multi_cpu_stop, &msdata); } =20 +int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, + const struct cpumask *cpus) +{ + return __stop_machine_cpuslocked(fn, data, cpus, false); +} + +int stop_machine_cpuslocked_nmi(cpu_stop_fn_t fn, void *data, + const struct cpumask *cpus) +{ + return __stop_machine_cpuslocked(fn, data, cpus, true); +} + int stop_machine(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus) { int ret; @@ -632,6 +690,19 @@ int stop_machine(cpu_stop_fn_t fn, void *data, const s= truct cpumask *cpus) } EXPORT_SYMBOL_GPL(stop_machine); =20 +int stop_machine_nmi(cpu_stop_fn_t fn, void *data, const struct cpumask *c= pus) +{ + int ret; + + cpus_read_lock(); + static_branch_enable_cpuslocked(&stop_machine_nmi_handler_enable); + ret =3D stop_machine_cpuslocked_nmi(fn, data, cpus); + static_branch_disable_cpuslocked(&stop_machine_nmi_handler_enable); + cpus_read_unlock(); + return ret; +} +EXPORT_SYMBOL_GPL(stop_machine_nmi); + #ifdef CONFIG_SCHED_SMT int stop_core_cpuslocked(unsigned int cpu, cpu_stop_fn_t fn, void *data) { --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011048.outbound.protection.outlook.com [40.107.208.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 92E6C30C60B for ; Mon, 13 Oct 2025 14:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366159; cv=fail; b=ElhakQzGtCnWLyKWQTgFaGubKiUwyGM4Cd0ZOEA1fcUbI4cK9BZspq8457kUIhGXEDgAEA/evQK3l5WlWHfL94p48uBxg4KhS7UQbtvQVPuhUrCIJRpumZE63ciMGr8rI0+QIeWUBzCyXEI8ePSBLHO9nT5qD4rDmVXwkioN3pw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366159; c=relaxed/simple; bh=wydbAxhO6YYK5usnmsZbTxNjoDgE02eyWLAkrN1oI14=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Aoqhg0W7N8CqzaX8qjybSV3Yk1Dvwip/lgAyeRTjFCSpu9YLj+LfruQTY8uvaHMVPtYXt9P5jXJB6qs7NhkUkMndk6vEglcCqLM9hHf41SfLvYVPDtGUEk4j0xu/S2txgR1Uly6cd7lsBRTIsaGp2hX1GT382oHZ50PcF0kuqak= 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=pEA4ddv8; arc=fail smtp.client-ip=40.107.208.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="pEA4ddv8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VahyrFpJMMGH/vhG+4Kbgo9FhU7MYUT0KyG4dL7TZ2azJqqEbDXw35JEVbI0RSrf5lTi+0ziOINIarLpjZQl7O030MGsrMBVPpSBflVKcuYKQ0zQW5K1TrbVqGwOFQiMuKRc7bWHG7keLUQ46ZSsw5x7cFxSmk+seeqdIr2sFzHzIo+LYA7nz0h0xle6joMvktDxUYBIb9tR4W+pX9N7gMnH9ukg66WhFg7X0mq19JhoRmugx7EL86DNIuiBz/xPvJ9K2C7MrHPl9Ir/QOcs+t36EkmfyZi+Ay87rKG+npbfxSrtrWLKFAP4rQ/DQC4Oo2xsza/7wz8zUEGLM4hUvA== 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=JSl1A1Ooo2LhYmsFr9OR4ppC2CfO0Er4iKvwUAHm09o=; b=GHcIJZ+zAp+EeC2jjKTLP5jsHCT1inwUZuxxAqREnC1BvUQcUcOzxoCq2INq8gTlZ11SqkXMGlwQI1rbqj0KWQ1OkxAnsizdKMXMQVf+mUcJ3NwEUDMXdBySoOnhCta75doFCM6/5vFMdpE6oGlIpFrDekzY9udGy8ZTHUIuq4zLIpaw4F6D/vIAtm24DOJKGlHVCSfVriiG4x+kYJPo7MBb4mYW1l1DHHqXXip7qtnLth05INth8Royh9l6ojb5FjLtO1CJts5s3sRGJlfmm2XReTcefdPp5ges7Yf7b06rKs9sUOQ83RWX+AV+6itULiNfcMIPRiCoGIYbZ1jPgQ== 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=JSl1A1Ooo2LhYmsFr9OR4ppC2CfO0Er4iKvwUAHm09o=; b=pEA4ddv85n1wOrKySUXZfnVZalcnphxHZSPX348+uCqCj2TvMOdyfp4H2LGcidQMUKlb5wG++7Z4SPdd8gJrq7YkUu8bE0i8izLDRlYeowcno8STdDMn3X486BWIOw5QMTSBFEGDYggs0mV7enjIMXEQnbE+OUqarNeGpS3HHSo= Received: from MW4PR04CA0108.namprd04.prod.outlook.com (2603:10b6:303:83::23) by LV8PR12MB9335.namprd12.prod.outlook.com (2603:10b6:408:1fc::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:54 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::32) by MW4PR04CA0108.outlook.office365.com (2603:10b6:303:83::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:53 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:38 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 29/56] x86/apic: Add self-NMI support Date: Mon, 13 Oct 2025 09:34:17 -0500 Message-ID: <20251013143444.3999-30-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|LV8PR12MB9335:EE_ X-MS-Office365-Filtering-Correlation-Id: 785c7d43-3dc4-4889-91b3-08de0a65d07a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?S+DzPApEXeDRtVqgWniCMhJZ1vjLT7ev2c3JoFm5Mm1u+F35gV1aapfMywXz?= =?us-ascii?Q?IlX33scHYAJqCDKXDrgg1ZqdlLRnRs5q5Ropnrbt8tVu5+gROF78YUYJ+KIr?= =?us-ascii?Q?p6bCQfAnGdIk4VffEyzcZ8Y4Y+DwplrK3EOvB2S2t4dRAMPKodVBPfXI3Rxv?= =?us-ascii?Q?HasWYROw+yFnCoEcDml6v7TyWpzjIq8AyHVuz6/4nclVO0pxcWrdrvZvrI1n?= =?us-ascii?Q?780o5mxgQmyx4Fh2LUWTDwCABI+GQcRFtejdkl8fd/GEA7fTkA+VVKqHJT6o?= =?us-ascii?Q?d1en8xgJJxT7y8TysEiqYJOPCB30wFHmJ3QKs+Hoo6p8+axTtPM3pyvpUgaL?= =?us-ascii?Q?T/dwF2MH9INBK9or7B5B2k1Q9RCgSVjOeYT7M4duZ0rJAmD2qTAKrQA0jGab?= =?us-ascii?Q?G3pdaD06TU7uGZlvya3yHJEMZbzfN+00/2jolIJ2urr/7F7MqJUyEyXku4f0?= =?us-ascii?Q?6C2GaaGaT8e8AjEZ4YFBBTe/r7l/l3i7x/E9On4KlxSVez5HdJa5/IpHhHns?= =?us-ascii?Q?BDBqxpQMic2bRJieUSAnsrhn6h6o7NvSUJSqr73MzJo3QO+O7mh43GnhzqWy?= =?us-ascii?Q?j9kFaiqsQExdyu8268nweU3dAWnIOuF83JncxHUUAx/Pqfa6jbchTBRsDU+F?= =?us-ascii?Q?fOCDj8cVfG2a+yMIsJv6m6SV3fZcArX2/SXjWCIZ5mmU2kyOCOjJ192wtwIv?= =?us-ascii?Q?92hyxVpnh0VwfB7P5Ngg1MsnbAb4FIcYaeVri+cmWQkhd11E9N1fGG6AQnnj?= =?us-ascii?Q?zbtABIVU8TgJ2HKanyqFUYOZWbVEOKvbcuV/LzAS6n3hQwkkuzVFxqD5It9T?= =?us-ascii?Q?yvZucFvnrrx97DxU24vhb3Nxa/tCyFYAEVP61QconP0ThOfHdTq9s+P1i0sJ?= =?us-ascii?Q?T1SnFBl8B/iGU2iv8RTiyxBZr3T608Am+3TRvKp2NjpFBkEAdptSzz5bf915?= =?us-ascii?Q?f3lthwEnk98vd0UdJdonF3GzgY+iHaTB53bgvM/TFV128SFxaXCa89cYOkFl?= =?us-ascii?Q?Xfdnxx4a0J5dGohi9eqZ6hlT0kLaPbenH96umx+hLWXfLgpXx+Q9X3seunMo?= =?us-ascii?Q?ub13H9QraCURTgytvQiKwFWUJulXGlVoHV4RXno45iYIB7aWselKWaIT9SPO?= =?us-ascii?Q?HzOvyV6A/o4cogQMwGM8SXvibt6v7xUDw1/0/9B+j0/tUlm/cbljq+9RIVBU?= =?us-ascii?Q?g8JyW/55Zo2lka52NXf0gLyhv14Somf+f1uFQHPl24ZotPASVgftUzhMMjIs?= =?us-ascii?Q?cgh+Ho8Py96MDNukO5wn89YNA2Vw9ATbcb2txw6ZPMz2MPRta4wHOnZz/LEw?= =?us-ascii?Q?nTPKitIKYmvgbcKbngsfhuBomYLTJxISALYbrE/R/WdIJ83p8z6ON3Cfd17Z?= =?us-ascii?Q?jCYM5f9lzTLCQ2UkwzmQU4iqc9MpcJwlVddehh1/0FM8Fu80jhj1M1PpjUud?= =?us-ascii?Q?85HkiQdkBORV3dm3jycRYnpBKf+82DcnX4jAb04XBUCgQ7C3e9VVpZVlWanD?= =?us-ascii?Q?SPzJePQ9IAhRZey/0jl39nnjC93SIHKDPRlBcMgWnkzE+6R0dxpsRvnJvVjb?= =?us-ascii?Q?eAJm6uQn6J+nFqyBRRU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:53.7456 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 785c7d43-3dc4-4889-91b3-08de0a65d07a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9335 Content-Type: text/plain; charset="utf-8" Add function to send an NMI-to-self which is needed for stop_machine_nmi(). Note that send_IPI_self() cannot be used to send an NMI so send_IPI() is used. Signed-off-by: David Kaplan --- arch/x86/kernel/apic/ipi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kernel/apic/ipi.c b/arch/x86/kernel/apic/ipi.c index 98a57cb4aa86..6d4e5aa27529 100644 --- a/arch/x86/kernel/apic/ipi.c +++ b/arch/x86/kernel/apic/ipi.c @@ -4,6 +4,7 @@ #include #include #include +#include =20 #include =20 @@ -248,6 +249,12 @@ void default_send_IPI_self(int vector) __default_send_IPI_shortcut(APIC_DEST_SELF, vector); } =20 +/* Self-NMI is used in stop_machine_nmi() */ +void arch_send_self_nmi(void) +{ + apic->send_IPI(smp_processor_id(), NMI_VECTOR); +} + #ifdef CONFIG_X86_32 void default_send_IPI_mask_sequence_logical(const struct cpumask *mask, in= t vector) { --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010030.outbound.protection.outlook.com [52.101.46.30]) (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 42BFE30C638 for ; Mon, 13 Oct 2025 14:35:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366161; cv=fail; b=ISTgjehfSuLi8rZkkXUkOeRjdBXjFCuMJsMMCzFTNUn0TaK+sMSKPL1tnAkm5IB9xk3sAYLr6idcTs3F85rn12OFuoUF3rimXyhjk+TcJa9cA5MrKLRT/umAcBGq1LnvohGLxilyHNXuOmkfgy6TmiNAAfpi7JcHP55uYNujkvw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366161; c=relaxed/simple; bh=66fdHl0Dh6YewbAvrHdbbIMbz+72JJNo8W6g7R9hOpo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CTo2Yst498hgkuji6TQl+ATRzjwqtx/yFRn2YrLzgflEwlHhYxEhdm0o8gplQaCTRBw0CvDepsnKVV8zcCfWImEHPkpUVohC3ZZ4D1gGlUOTl9ae301ZmHBfjyYem5TGVY85S06SKrxWmc6cueqcqOMgj1UOzEvo9c6FR2VyBKM= 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=bcBGY+1R; arc=fail smtp.client-ip=52.101.46.30 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="bcBGY+1R" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ArMs49iucQ+qiur5Jd9hfjA8S6oWsQLqdNhhpFtNQb3wl5zPCEUYaOoKG6CXr9haRiIoy7+dSzS832/t0MuZ5hmvFtc/I9WL3EQehk9u1hEGFMBD+xzGaEDx7jwhBEdHQQGF6OMM36h5f3+QZzbcUOwRrQhJTGLUytRALvr7xdITHd3+B7A+MPK3N+KouZGobyxP3HD3ktPsqPgvRhHfSC+4BYfovknkm0G7eL50I60jol4Tc1i/eawY1FooIBayrIznrhWA9jszRyChTtvK46Zm+JTbnlT+Xn6b5wolQGP/ZVQsXMkTlF6Ko1IIdYK4YCSWR6Nm6ZfF4EDOfNEY+w== 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=Bea/FwTifHO8WNgy5AGped0VAkhBt0KaveXw9Y9AV3U=; b=F1YuKtVGQjcdmYx+fyNlDAH6LxXrm1GAlZIgd5Ds0HxXZbc+fW6tKqhc5zIL/ksunuCSQwGpcS4COyP4KVbCs6heIE6qKu1GmyDxp5SfYcoZzOX5Fu6cglwi5M4Wvksm2af6TMxVPYPCevbCPKJDSfWOgOqRgQJZDhuKlhvHrH8Q1IdQvr1KKSTL7pRVkodt17LiDdljJMk/Y/R0m4JfUOUT7vRrtwaHhbcJ+f4klfwAh6Hm33OBbYSTnstajkmkYnyiUsPm0UE9qcdI2cv3WMfvfnPDy5tiQpNIWDYHqSk/qf8tgPLd5PIUxSjjN8LuM3/Pa+bW7su8eOA35ARBXw== 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=Bea/FwTifHO8WNgy5AGped0VAkhBt0KaveXw9Y9AV3U=; b=bcBGY+1RHlpIDtSCV/wnP8MGnLN0BohNhIpb2vfD1oGHbDFiinCeJM3bnRLYTbBU1TlV8Y8/Qx9LOzPr7NmO2FrP6wjdIBRlxJ4iWycATB4yqcTp4dIU8/Kq8AXj8vXcWJFYeAioZVLPOOTeOVUDf1pH2XfHTOVwIb+iyLU80Mk= Received: from MW4PR04CA0104.namprd04.prod.outlook.com (2603:10b6:303:83::19) by IA0PR12MB8352.namprd12.prod.outlook.com (2603:10b6:208:3dd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:55 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::bf) by MW4PR04CA0104.outlook.office365.com (2603:10b6:303:83::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:35:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:54 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:39 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 30/56] x86/nmi: Add support for stop_machine_nmi() Date: Mon, 13 Oct 2025 09:34:18 -0500 Message-ID: <20251013143444.3999-31-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|IA0PR12MB8352:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a5ca482-b0dd-45d7-0e9a-08de0a65d134 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?0Vbu4Cs76kWRkyl2agfeGqrDWmQm5S1GYN3oxvIkQzMJ1iXW+mS99sa4oVYF?= =?us-ascii?Q?Qj6p4HOpfjCYOap9C7zKZCrypPS6f+RPygOQth3K5mSomTsboHhAML4+ntpv?= =?us-ascii?Q?MyhrKYZ+UURP5br86hTE2208P9okISCooVCTY6bTIs8P9+tz5ffDK7C4cpEE?= =?us-ascii?Q?s/yehEVP5bnJd7AQvwC+CqMCaKocsaL2Rh4DSfOLZUnQzGUpSMqPsb9lrM5n?= =?us-ascii?Q?j56JN5bIur1tS+tWwEeuV7U7uKmgVqW27uVjt0fUai10flYb2ByVITfRvRF7?= =?us-ascii?Q?o7alySW9d52SohPDx2lAIQiX2wzEyXafL+y1f88rXfpheTABvTo/trOpQuKn?= =?us-ascii?Q?10GZqVQ7qPNstAL9EU8HphVkj0twK0ghq9F3we00UC0UFfFC7Gux5Y02Lw+k?= =?us-ascii?Q?OZguuS3WAVkvsa56W4a0a5/gXuEOwDAdDRjCR0w6MFyBGIs6n5uVZmu4EnBw?= =?us-ascii?Q?ldosztamNmImzLxdV4X83ZUQDVJBdyInCfF21CjgT9SXjXum5YjSc7sb5+CF?= =?us-ascii?Q?s0BqjuczvjeNU9IzD5tBWKRKNs0cGRvK/UMQjAodeHA4r0SDDF5DqyMHCm56?= =?us-ascii?Q?wUuJFHef+0XlimlmCIzVLdfws7V7Ky4uhJlcfn9xaw2Q0Va1rTrgxgZSHaXd?= =?us-ascii?Q?jfcyRsNNOYZXRTwZnGDhiyi7lNLtKTq6FX4HeD8NPay1Nk9fH9KyFeaDo1Pp?= =?us-ascii?Q?1wXAoWBt1ffLc1+ODZzTKgQyg0z5kcGyhXJOedEHFM4rporEUZL8XD/cGGoi?= =?us-ascii?Q?6IDFWhR3jI/Fo1ZMjNNXp39hg7kfZvxhpAd1WcsSWbMfyjhrF3AQfwBi115O?= =?us-ascii?Q?xQ/zFix41WFY8SMsE0iZ8ikwkjhMcAxsT3JqiFQ5tOCjMB15G4jy+6qU4srq?= =?us-ascii?Q?48xntDRF+JCOtbKABfKCFjY/+EpSHjIU7hxZlZKh2XjJ8XNR7Stm9d8dQug2?= =?us-ascii?Q?+WAHgmPPcWSwaqgeRXc8rS7zRkoe8Pi5tGWFfgeKQzqYlPxXag9xHlobH7ho?= =?us-ascii?Q?JupEyXiH77x0mkbSykIQZtYpPgfwRAsAsuYAF1sUzHVoeQfx4Eh6X989RfEk?= =?us-ascii?Q?PNVOWJ+ZZuMqK3Kgx/XfZhwWwoW4dtsJZju2HWBdHJdIzC7NCVLQT/iBerBs?= =?us-ascii?Q?0ioOAurV9DoGT+SyRLWZQt4bVFLwA+azUrhqlKEPTIYUBNzY45RFivDs6Nmf?= =?us-ascii?Q?DFZ+24bhNA88W31ub5pBr+WMtOZB6DM73hVG1f69IK4xIYSxQJtO2grACfdL?= =?us-ascii?Q?7EQ654oOKICGcIpNASIWlFq8bgTBrNC2OTHAuuSHFS+CQpFjeXKAdQZvGLOG?= =?us-ascii?Q?q6CL/S/1/FCcG+3uwQbT6OEszovPZIqzD1H+nuI1ABPKa99VBGAGv4ybwPSE?= =?us-ascii?Q?lUQNafC8lfoYmRW90f/Dn1MOrQ39vQVf4Z/upiWCuu0dCD4J9NUrx4vjrRuc?= =?us-ascii?Q?gLuqCVrEyL4dfriecRjFcjHqg8TnpPgyoe1e3ugPgj/uzojLx+fr/ysNigpM?= =?us-ascii?Q?u4MVVl7iYMWK/2YXqx7eqCumDgw2/704eUiCuocc5n/BiNQ9c6c0EqBpGol4?= =?us-ascii?Q?b4IawY2Bp4Kx7WcDDr0=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:54.9617 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7a5ca482-b0dd-45d7-0e9a-08de0a65d134 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8352 Content-Type: text/plain; charset="utf-8" Call the stop_machine_nmi_handler() if the appropriate static branch is enabled in order to support stop_machine_nmi(). Signed-off-by: David Kaplan --- arch/x86/kernel/nmi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c index be93ec7255bf..c0d8e80029a0 100644 --- a/arch/x86/kernel/nmi.c +++ b/arch/x86/kernel/nmi.c @@ -24,6 +24,7 @@ #include #include #include +#include =20 #include #include @@ -381,6 +382,9 @@ static noinstr void default_do_nmi(struct pt_regs *regs) =20 instrumentation_begin(); =20 + if (stop_machine_nmi_handler_enabled() && stop_machine_nmi_handler()) + goto out; + if (microcode_nmi_handler_enabled() && microcode_nmi_handler()) goto out; =20 --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012047.outbound.protection.outlook.com [40.107.209.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 98C6130DD18 for ; Mon, 13 Oct 2025 14:36:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366164; cv=fail; b=W6iYs91cDwqV2kEaIlF3OzPZuBFeRwCvVZ90rDLnIxVjR5KCiLImCnaFrdGoiDyD4kUvjsgEG023wjx+/Tf1pxECsFxaOxT4Na3Sa95K/8vjQRKfmj+bmTFPk23p9q7wkUawQqIBwDHEIFxMdf70V+mtQAlCKQoEWpPuzta2Kf8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366164; c=relaxed/simple; bh=szeS4IYBZw45VvSXuyKlguFkjaHmm6G+Hct9m/E9jGc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=L/mbZZZAKRjtNB3Li2lEU3n6tUu/Ub5q5Z7HlgI1WreV12YFj6UBJx3uOqTGYj/WJMoP4LYZ21hw6WcpJc97/ULmfl/GNJxm+02oDfo/JULX715PBNEoUE41To1qYwCDEGV0zZEGqkPi7vWp60yv00qT3y3a9PGBXYcV5VSNlGc= 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=e7rWfbLu; arc=fail smtp.client-ip=40.107.209.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="e7rWfbLu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rfC1b0DbopiqdLaNlhcRE7CRXuymuw3bwF7plvt0Fjoh+3j36xklSjar8rYP4q/wkg6cW9p/Vb6i6khOWY07AJTV0LfJewdFQfQWbMopOsoUT8u9hYZm3+26Gp89fEVKCMUftnfzPfya6jZECUFnr6SqehckhCZqpdx4luMz58NG76CfDwZpt/J4U9ljONxPkvlSwgPjDtYdJzm4Wzd5X2B35iGhMfDzDyGuiHGNGoTwaHku4BDA2JnnGftm4Geno+/lVplBqcYhjNx36+b+CpiMvckdtpHS9S4VPgfipH/c4Fd9aP+dvu/HrqJah7GjGeLtBqq/ALxWb86qihXX8w== 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=c20+54u+49uHkZjCXO9IZGkP1A5vaTTZmrbwnQaZU2s=; b=XGVaM05FHSzUg4lpD92n+Fjx+qpK3nQsRFSHa2P8m422yp8gLGVePR/r0/s2bfsLixKEtGTyA8+CWuBCAildv0HKNSKHswAi7+JilI9RfLxIo0MQLw6WeIKiKr+l/XxqB2KILHnL6bCVxwvO+STSkvkJNyLo/0oh3uy+qYV8E+fhVw8J7IplswpP//VW8JzmuZ9M89MA8t7TagnWpWkvGzbLo7QVdax7t5QdUvWa9R1cB6a2U3BRbnROOEW1b9Y9SwqRCxVAFsnHd8p8MbQcy3cBNe4WE4Mzs5p+Yg3c9UXDSfKkugt/hFifWQWFpOTWigF69ZJX6E6FonscY65ofg== 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=c20+54u+49uHkZjCXO9IZGkP1A5vaTTZmrbwnQaZU2s=; b=e7rWfbLuToeQC6JNNbAjrtnEZtuDNpRJUUTYlHgxsgOoleOiDj5djEUxqouAewbBn+Pn5DoHRcfoZf3NjnD0mGpUurbJXG+X6DfBDqiAhI0xktOLMD+DX41nhlDUt3+LF9eKU3i7tXpJAvBwc0UkZn/vUlplUBYtRxoInGxTSrY= Received: from MW4PR04CA0103.namprd04.prod.outlook.com (2603:10b6:303:83::18) by IA1PR12MB9500.namprd12.prod.outlook.com (2603:10b6:208:596::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:56 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::b2) by MW4PR04CA0103.outlook.office365.com (2603:10b6:303:83::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:35:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:55 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:40 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 31/56] x86/alternative: Prepend nops with retpolines Date: Mon, 13 Oct 2025 09:34:19 -0500 Message-ID: <20251013143444.3999-32-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|IA1PR12MB9500:EE_ X-MS-Office365-Filtering-Correlation-Id: ac3c5664-b7e7-46aa-9ded-08de0a65d1b1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2o5D5j4NJiyqrcIWVi66FO+0HnuNCXKktD9YUI/eJmJrbBf1sjHtJpKGNB62?= =?us-ascii?Q?G1LgKyLVJ92tMzwpF2vjFWtho95le5noF+CD5FmciWfBVP6pG19cg7P+HDNn?= =?us-ascii?Q?kLrVwAo/e+PBAd2LWfZWJmFu7tnDwQ1G+GU7Wn8Mr34Ml/lZFvdakK5hh6cR?= =?us-ascii?Q?yTOop8x02NZe9JoAtKOnB96cLuUMgxiBG2JKv84J06pSG7W7xk4W20lW6djp?= =?us-ascii?Q?SYQf/LdrKYJw5P6PmxKygwqfHAY1Pktu1zGk8Plwgg6hozvS8MKfPZkALk7B?= =?us-ascii?Q?gJCHCW1NEr/nsfnpcAfPPSX59Zizt2M4dInjZJ5cayy8ry5kEJpyg3K0wI7Y?= =?us-ascii?Q?2BdJrKmHaTm2SnnyAJ0mMQvWwzqoektoRMIq9jjbbMB6FVNfh6infRddBoG4?= =?us-ascii?Q?GFsHXpTF1Lp/Gz5XqChKa/HG53Kj/7YMv8sKgOo4ld/oQUuT7/tnIMBZgSoy?= =?us-ascii?Q?2r+V9STF8bXhRd646/jz2H5mouWFiphGZdZxiA6XVE631WpLQnw6PdQQly+v?= =?us-ascii?Q?NhZ+XfG/0mo7f9QRT3bfsdg+lb8Gq/DOER0T5KojAoKiDtlm0kG3pkW3WOpj?= =?us-ascii?Q?skO2l63wYGpIrekApej69xyxyCpr93OQEWxLJwR2I65ZcbEInHgXm4xT9tf0?= =?us-ascii?Q?414QD+RHw0XO2516pxL4LKiUofLTTBKgbPm3A5GvBECLXqmzGkCVSzRYp9b+?= =?us-ascii?Q?UpnwFVhrihVoVZhBRZrB1mfQ5ZbPXb34kbgyQoyf6eM3pp6zzsJL/XDfTP0C?= =?us-ascii?Q?4CUpeF0mEzsaRtTys4jMvu10P3J6mdLk0VweJewtjYBEZqczGhuVle8NAOJp?= =?us-ascii?Q?4Kkr4AZbOAP3V47XbFlaRQeCjanT8vZrffPWckTcZQk0tmTeJHmFZ9oe+WZu?= =?us-ascii?Q?P391z5ZTxDfOZygOyKLtbBONVcczK4BY5bmqRDGRgqEcuX0lyYoEl7FpJMAD?= =?us-ascii?Q?zjrTQ4f4fE5MOf4mNBLZlw+zMWuvaHXIikOIsXD/DQAs421459sqV0n7OBV1?= =?us-ascii?Q?hr5PTVqvfTyLyjmS3SgXh+N1Xs+LC0KYDN4lplUeK6vLwPPHOjng3HqAPn1d?= =?us-ascii?Q?4MzBNtmKyb1NOQ3+5kF+e90ZNvoNysaJENM6Ak919o9YJ2DjB5w0rqlu1F8K?= =?us-ascii?Q?bh3Z0y+BTDTPaYMI52J8UkObUyFMZII4j8912nE+uqYwbAW8cGuklXKB+kxy?= =?us-ascii?Q?+cnk3S4wpBTgdLNPYZbSLvDBLKzcz43Wibh9Ymc84uTt4VBMJFQAvgpovpkt?= =?us-ascii?Q?WCTaVCetsOZDLqer9IcSYNO6lGmoYJ7Zpfm5nxkNlKSXXgDHOWPgnsChspbA?= =?us-ascii?Q?1VLdpCOIURmy1wvui+3euO3VzOvvkYHQmYyVUaoEJBTqeLg57DXppd36QicE?= =?us-ascii?Q?fMMYuEzA5TtYL5MAQhTrAVxCJ2Z9TOBlniQ50+lHL5Eh5VOXJvbK8UymtrKC?= =?us-ascii?Q?jhIQyZbiR39+IclNF0DHAP3WudpwcqMJKiN7TaiyOTHXd28Ovl6jUeWMBgf4?= =?us-ascii?Q?HOTpU+ILEQ7AOVfZLXt8b6AIAaQsQ/rtiBZ9e/yJdJCG8ZDe4JG1c1C0BtLb?= =?us-ascii?Q?9Sg9f4zlj+7MYb5k/JE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:55.7831 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ac3c5664-b7e7-46aa-9ded-08de0a65d1b1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9500 Content-Type: text/plain; charset="utf-8" When patching retpolines, nops may be required for padding such as when turning a 5-byte direct call into a 2-byte indirect call. Previously, these were appended at the end so the code becomes "call *reg;nop;nop;nop" for example. This was fine because it's always going from a larger instruction to a smaller one. But this is a problem if the sequence is transformed from a 2-byte indirect to the 5-byte direct call version at runtime because when the called function returns, it will be in the middle of the 5-byte call instruction. To fix this, prepend the nops instead of appending them. Consequently, the return site of the called function is always the same. For indirect jmps this is potentially slightly less efficient compared to appending nops, but indirect jmps are so rare this hardly seems worth optimizing. Signed-off-by: David Kaplan --- arch/x86/kernel/alternative.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 8ee5ff547357..7a1f17078581 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -854,6 +854,21 @@ static bool cpu_wants_indirect_its_thunk_at(unsigned l= ong addr, int reg) =20 #endif /* CONFIG_MITIGATION_ITS */ =20 +static void prepend_nops(u8 *bytes, int curlen, int neededlen) +{ + u8 newbytes[16]; + int pad =3D neededlen - curlen; + + /* Fill padding bytes with NOP. */ + memset(newbytes, BYTES_NOP1, pad); + + /* Copy the new instruction in. */ + memcpy(newbytes + pad, bytes, curlen); + + /* And write the final result back out to bytes. */ + memcpy(bytes, newbytes, neededlen); +} + /* * Rewrite the compiler generated retpoline thunk calls. * @@ -942,10 +957,16 @@ static int patch_retpoline(void *addr, struct insn *i= nsn, u8 *bytes) return ret; i +=3D ret; =20 - for (; i < insn->length;) - bytes[i++] =3D BYTES_NOP1; + /* + * Prepend the instruction with NOPs. These are prepended, instead of + * appended so the return site does not change. This is necessary when + * re-patching retpolines at runtime, such as via + * CONFIG_DYNAMIC_MITIGATIONS, but do it always since the performance is + * the same either way (other than for JMP, but those are very rare). + */ + prepend_nops(bytes, i, insn->length); =20 - return i; + return insn->length; } =20 /* --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012034.outbound.protection.outlook.com [52.101.48.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D542E30CD87 for ; Mon, 13 Oct 2025 14:35:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366161; cv=fail; b=C6f7dlpmDY6biymfRF9+nAMl40+Mqi+rJ0EvIzVog1cDm31CQuC05gp+OrfJod12Q9ewDFBd6yZQmrWruL66Ri9ze/Qb3vDhXPhdWQ0orBvMtEWkLblcauxjivFWMWOic41dxRZil/1499ld51tBo6uDgHEtr04cMZ1N+0i82bA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366161; c=relaxed/simple; bh=4wgqe7N27rsjsbcndHBp0NQ+epQwC5pPO5FVCjNXaGk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=o+gdEEqiiCipQQFpIDIwJs5x86X4T0STGNZVWv6XDh3dFoj3ZM5RM1lFQacJ4NphnKF4549nM3kHYsVlvTJNqE3LC6N1245FXsFx1jsLkm4NatLQI6EJ2kyL0NbnGf0u1UjUPXLWEbWphcttP1ZAcQMGT/desUGC7yVezJ1gUY8= 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=WGNFpyu2; arc=fail smtp.client-ip=52.101.48.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="WGNFpyu2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iFSg5E6HYrf/evOWUB7q2GqJzlGnFh6uzqjDtcr7/u/Id5MGAYcRqAhWYnn0uvBiqhcorlwFxMQN/ucKDhlHI4soCWKT32/DJd3ODAzQWVJH0ss1uDq1kHRkUz0Mr0qH4LUh1TQUxKrzcZFlSik5ZJuXQdpeMEGfMo/63XsgBygUr12Pu08r3mftQph1FMeFxbr8S9ezEln5YBl98xa4FDSfssPt1DC4XEErJ5A9+bY3dQWHhsGEGFdEGThK+lBRnmgy1ox+17m7Y0rvsfOx4v3j9LsqmOTylQrJ9pFUifxmTQhz+Ih5Vt0oyFG3H0rYrOgUozzKQLYjE/OOfClPbw== 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=j/eN39qjNA5rL6R5SqKEN4XFJOmz3NrezM3rZVUBP8o=; b=FidpHFqLNFNe+/bQaDLsXfwyrClB0TnJpIWrPgNU0I90vX8fbBV9UuXRDOaMeVGV2JV3LTs3uuVoiuqxqf7g1KPjJTTfyAHgQ/iUwUeGNXlp5QfEsjTXRpQ8T0nh2Agn1ZD3nnGMXot679eljLzsCah0HZKWXAH9DeFE6VzC5WJEk2HfapkermcNRk5Nc+TsoG+AN2tOPrtMU+JQ+vtuKEYitCEzXTUB+RFZmoSpKFPAaur2T5rRgXYhpsCfG23vI0L7iIYvCMFs2KfEs0Z29KFYF6wVYLpm2pfhxkFH7bSsRjSF6BHjMbkC+OmoLNztmJkaMWOsIqmTBahF+2D6XQ== 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=j/eN39qjNA5rL6R5SqKEN4XFJOmz3NrezM3rZVUBP8o=; b=WGNFpyu2XglYRbo2Ejc1q2MU2omZcr1c4jtIhb4Eroge+1PGczzatqKgpyGOz2oVaya2c4beZ5eHe50w3TAsQKWOIRYXn7+Uzgf18SmLU/Lym0L2FY4U0yN+6/clKNsbO8AXGZNj39WZVCyMcDOelF1BG+Sk32iuJ00+yp5KycE= Received: from MW4PR04CA0120.namprd04.prod.outlook.com (2603:10b6:303:83::35) by MN0PR12MB5953.namprd12.prod.outlook.com (2603:10b6:208:37c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:35:56 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::a8) by MW4PR04CA0120.outlook.office365.com (2603:10b6:303:83::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:56 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:41 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 32/56] x86/alternative: Add module param Date: Mon, 13 Oct 2025 09:34:20 -0500 Message-ID: <20251013143444.3999-33-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|MN0PR12MB5953:EE_ X-MS-Office365-Filtering-Correlation-Id: 67aabca7-0db8-4a7b-500f-08de0a65d221 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yndSNGBI5DpG6R76q2LAy/81VlnkQM9vvu23imcF4Rbnw3NYNyOGrj3cZhPt?= =?us-ascii?Q?7vmtmsH2XHO9L0uHtFQrNjIQZFiFyX9YpfJdJmkjCTJ3/zPFkG1FKVGjG+bg?= =?us-ascii?Q?ro4KbCTRdVdDdlINyio10vYY9lhnFpWv57BhhTb+Uqth185/4K4ECViQJFzO?= =?us-ascii?Q?PhpFPKyXHy+42aOmkFLGq6IRBUGBgH3q8p5b63ssEdRknGY5pzRlaEQOsG6l?= =?us-ascii?Q?L2dPbYHzXzn1rTL9BaEonFruyFCVtGiK5hCI3+ozsik8X2AtHP27Od+hLDOa?= =?us-ascii?Q?Y1lRgKo/rIjgFWPTxLK0JJyQQVP3ZgCmVpcEcq/m8L4BIRCfFRwwJZ2JbFJX?= =?us-ascii?Q?DSKbaVAEnCtC/fgU8cSrpwcZUqwkBZbtsNwW73zIv+YcZ9kjAYodK+PIRBO2?= =?us-ascii?Q?ikYrdm+nWlZCdQz06Lu5GPaO+K73HswcxYtc4OD7hyhpug4SQN29BVUzJ88U?= =?us-ascii?Q?LV82IRbEDE0B9GUpTtSyim9CiEA5EgoORP5bJVKZ3CZXnEkizulXnQMLkLV7?= =?us-ascii?Q?ANQVyhQQrVmEML/PzbhPvzTOWYLFtd6gJ0XwrPI+NxotmJMcfSel0SAssV9k?= =?us-ascii?Q?vWgml13jjFgp0eaTA8n7zQDOR5Ka2Yoh3UELF0Lb2ShyTgJPyxDMjZGnMNCv?= =?us-ascii?Q?zoqwswe9kDvljvDi0q5m8dLt/8oglBVT4DXH7lahxCTkbs1wdF/8fjmeOwjt?= =?us-ascii?Q?X2ENwlvm4/iSHcvPB/NmgN7XsFegyGjh328DH6CRZZSMlte4L1Y1tCQYxp/l?= =?us-ascii?Q?rj/zRoHpmzdVeGhnF4uXSs9vYJ1YzfS3NpPo55m8g15yDy5SkK2g452HtBD0?= =?us-ascii?Q?vwrSJVk6e2fA1xdTDQdzhaQoopaOPKxRV4mmDmT/Khi2BzJDjzxeFyLr1kT3?= =?us-ascii?Q?amnVjwFXec/Msp29kzgSMoM3wkO9mT7VkjBztvw/Munz1CQHOxmJkD610N0t?= =?us-ascii?Q?w1M944YhaCnVFHOCDDGO8a3I/7iofJJtFk6vhqK0dTeTUVKKu/k59Q1tpQYe?= =?us-ascii?Q?4qO9Gqgk8Yw1K0drIZAIy0r4OmMkdxaOJl2XskJA9LT9kxJDWv0hTc09BFnT?= =?us-ascii?Q?nnKSv0AXDaWsIio9KEMHJzT586ZP/EQKZqaOEpUTbDy8ObywKFvP50ywdYMp?= =?us-ascii?Q?M6VRAEsmglN+N6bc16kiEGz473HmzTy+S2hwKTggdLVsm4OHfa5tBAsOvYfX?= =?us-ascii?Q?xfkPXaZ/ZNMNWJFgcbP83Rn/PL33UlkzKzkaKvscL2tZHt4icmoKXozDoNqi?= =?us-ascii?Q?D6FiMiZHImBhE2m+H8l7f/njNKCtLSeZFUtUMBtCieOusjamvGsqLoF4xvJX?= =?us-ascii?Q?3KqlykBPdQoT9wZalDMyJzJeodFfbsmaMvc48IY/uidoFu/awpMq6x7AZIPs?= =?us-ascii?Q?JMzSejxzlyf7r649osNm8JVPNgY4eRWo4vbvUGGRqqSR5CUNfGbTjM5gcOIK?= =?us-ascii?Q?LY//i/9o1gRetCX3wk5CXp67NvDIgZ2y24nCtUWjvPm49shbu3gCccY6DXoo?= =?us-ascii?Q?sAE78cRTyThwJG9DDUYpvdH/dBhTnLh4pqhynY71/I2xIwBnjmPeniR8Z9mi?= =?us-ascii?Q?7Gspg1If7CFnIfMMxG0=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:56.5152 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 67aabca7-0db8-4a7b-500f-08de0a65d221 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5953 Content-Type: text/plain; charset="utf-8" Add a struct module* param to the apply_alternatives(), apply_returns(), and apply_retpolines() functions. This will later be used to help store the old instruction bytes to support re-patching. Signed-off-by: David Kaplan --- arch/x86/entry/vdso/vma.c | 2 +- arch/x86/include/asm/alternative.h | 11 ++++++----- arch/x86/kernel/alternative.c | 19 ++++++++++--------- arch/x86/kernel/module.c | 6 +++--- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index afe105b2f907..2451a8007854 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c @@ -42,7 +42,7 @@ int __init init_vdso_image(const struct vdso_image *image) =20 apply_alternatives((struct alt_instr *)(image->data + image->alt), (struct alt_instr *)(image->data + image->alt + - image->alt_len)); + image->alt_len), NULL); =20 return 0; } diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 15bc07a5ebb3..73fd8ebdf8d9 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -95,16 +95,17 @@ extern s32 __smp_locks[], __smp_locks_end[]; */ extern int alternatives_patched; =20 +struct module; + extern void alternative_instructions(void); -extern void apply_alternatives(struct alt_instr *start, struct alt_instr *= end); -extern void apply_retpolines(s32 *start, s32 *end); -extern void apply_returns(s32 *start, s32 *end); +extern void apply_alternatives(struct alt_instr *start, struct alt_instr *= end, + struct module *mod); +extern void apply_retpolines(s32 *start, s32 *end, struct module *mod); +extern void apply_returns(s32 *start, s32 *end, struct module *mod); extern void apply_seal_endbr(s32 *start, s32 *end); extern void apply_fineibt(s32 *start_retpoline, s32 *end_retpoine, s32 *start_cfi, s32 *end_cfi); =20 -struct module; - struct callthunk_sites { s32 *call_start, *call_end; }; diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 7a1f17078581..9fbec219e98e 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -615,7 +615,8 @@ static inline u8 * instr_va(struct alt_instr *i) * to refetch changed I$ lines. */ void __init_or_module noinline apply_alternatives(struct alt_instr *start, - struct alt_instr *end) + struct alt_instr *end, + struct module *mod) { u8 insn_buff[MAX_PATCH_LEN]; u8 *instr, *replacement; @@ -972,7 +973,7 @@ static int patch_retpoline(void *addr, struct insn *ins= n, u8 *bytes) /* * Generated by 'objtool --retpoline'. */ -void __init_or_module noinline apply_retpolines(s32 *start, s32 *end) +void __init_or_module noinline apply_retpolines(s32 *start, s32 *end, stru= ct module *mod) { s32 *s; =20 @@ -1076,7 +1077,7 @@ static int patch_return(void *addr, struct insn *insn= , u8 *bytes) return i; } =20 -void __init_or_module noinline apply_returns(s32 *start, s32 *end) +void __init_or_module noinline apply_returns(s32 *start, s32 *end, struct = module *mod) { s32 *s; =20 @@ -1117,13 +1118,13 @@ void __init_or_module noinline apply_returns(s32 *s= tart, s32 *end) } } #else /* !CONFIG_MITIGATION_RETHUNK: */ -void __init_or_module noinline apply_returns(s32 *start, s32 *end) { } +void __init_or_module noinline apply_returns(s32 *start, s32 *end, struct = module *mod) { } #endif /* !CONFIG_MITIGATION_RETHUNK */ =20 #else /* !CONFIG_MITIGATION_RETPOLINE || !CONFIG_OBJTOOL */ =20 -void __init_or_module noinline apply_retpolines(s32 *start, s32 *end) { } -void __init_or_module noinline apply_returns(s32 *start, s32 *end) { } +void __init_or_module noinline apply_retpolines(s32 *start, s32 *end, stru= ct module *mod) { } +void __init_or_module noinline apply_returns(s32 *start, s32 *end, struct = module *mod) { } =20 #endif /* !CONFIG_MITIGATION_RETPOLINE || !CONFIG_OBJTOOL */ =20 @@ -2407,8 +2408,8 @@ void __init alternative_instructions(void) * Rewrite the retpolines, must be done before alternatives since * those can rewrite the retpoline thunks. */ - apply_retpolines(__retpoline_sites, __retpoline_sites_end); - apply_returns(__return_sites, __return_sites_end); + apply_retpolines(__retpoline_sites, __retpoline_sites_end, NULL); + apply_returns(__return_sites, __return_sites_end, NULL); =20 its_fini_core(); =20 @@ -2418,7 +2419,7 @@ void __init alternative_instructions(void) */ callthunks_patch_builtin_calls(); =20 - apply_alternatives(__alt_instructions, __alt_instructions_end); + apply_alternatives(__alt_instructions, __alt_instructions_end, NULL); =20 /* * Seal all functions that do not have their address taken. diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index 0ffbae902e2f..0765d2360a33 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c @@ -286,14 +286,14 @@ int module_finalize(const Elf_Ehdr *hdr, } if (retpolines) { void *rseg =3D (void *)retpolines->sh_addr; - apply_retpolines(rseg, rseg + retpolines->sh_size); + apply_retpolines(rseg, rseg + retpolines->sh_size, me); } =20 its_fini_mod(me); =20 if (returns) { void *rseg =3D (void *)returns->sh_addr; - apply_returns(rseg, rseg + returns->sh_size); + apply_returns(rseg, rseg + returns->sh_size, me); } if (calls) { struct callthunk_sites cs =3D {}; @@ -306,7 +306,7 @@ int module_finalize(const Elf_Ehdr *hdr, if (alt) { /* patch .altinstructions */ void *aseg =3D (void *)alt->sh_addr; - apply_alternatives(aseg, aseg + alt->sh_size); + apply_alternatives(aseg, aseg + alt->sh_size, me); } if (ibt_endbr) { void *iseg =3D (void *)ibt_endbr->sh_addr; --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010002.outbound.protection.outlook.com [52.101.61.2]) (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 BD24130CDBC for ; Mon, 13 Oct 2025 14:36:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366163; cv=fail; b=i5tjgLqcS7SXYLx4eTVTqAOXw/0er23yqxgztpTsjm/5mHqiIBR574y7F6pX/hy/4YcH9tT5+X6dYoRjtaGGOGLBHuIB75wd656Lbi901dudOEOM5MzqqojMny6Q/vECscVmG1FycVWIMhN5Y09UM3PQPHoFrVya6dNNayf/IMc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366163; c=relaxed/simple; bh=CZ4PAAgqCnCFfDnsAbUxT45U/FGB7kn9MkRV/9CssxA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=B0ngyKYzXROD/KXF4R6XB31eP3QRFIb9zpjHgb3RsOL5gU9PctYtcivEGVKykK4778flYDxtGAye9PM6jS2Dof+mWof4mHaT8FpB/6w4nyCbzriXShd09vDn5MAn72XiJdIwEIZq92QgNUlHsuZMnBg9AjEzqP0zhB7HUhokTJM= 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=UteiMFgi; arc=fail smtp.client-ip=52.101.61.2 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="UteiMFgi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A0dRrnF3T/IPLAvYWQHi3P2SQP9C/QS5u25TkDFWwwUqF6IhgmBqyFqxSL+wWXlmXku//OOzL3dGoCsrCVhmdviEZjWYEED038+Fo15HDK+jmwPWbhgWXIPRlg/VmWusuaulmk7VvhX2lYgsYB3n1uvJhL/MXReWCj2mzjE2HL7+ebMIybBgkn9dI5K7pqN6fThoaaix75bzk3EWO3MvPc+7mu4wipbsnV6Sb/lw6H7QSUVrbg729ociI90nPzhY2y39FCyuKX/PWV4jWLXyuaw6ltaEQxY3tydMaz7rh0b+TOBK6MxLKoSOcna3QU/RSHwIVlOfNMvNIc6MxSl05A== 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=3JLqLhgcMXqeyQvZ2OP/8DdSU/rKGrIrLGIGn8YaO5g=; b=pf38nFf0dWxS7o+P8QnqbcjB2PDnZBCTTzO+j246L4WyspAzFCyFNYiwp6ConwFLgIfHGm6Gltiua5gQyLgQsUbYq7QxftDuakbiFxat1ZEkRhtx+czcNfloUOSNw939lkT+eOlujTOt+WkpcPQFIXBddEdv5a2TO60u1K97QdBccurjy+PQzkmNNu8xDD824fx3brmNowl9e6ejzDznG/fdvWbWTpUwPtgHQzzhWnw6i0U4uC9NkebCuXuRx8TtQW6CtuM0NNclD1341qm0gYfY7nuvtJv8CtQphNIXcVfheoL4NBWIbBsYALEtQmDI8/YhOYQqIHgatYwKLUCldQ== 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=3JLqLhgcMXqeyQvZ2OP/8DdSU/rKGrIrLGIGn8YaO5g=; b=UteiMFgidBwZNzhLHrY5wbK4SLXDGwa+fkTK/VKfnIya+mxhdnAgeC5vg11CTlZyZBF/WlJxz7pI14uRGzTCt95+cq5FEQKAQcCnSeGmj3XD3C6eCJUz9o6rTxT7VCnojk1y6xGUhSU91mnNqxqS/EJjeN02h203Puc+nXtfi5E= Received: from MW4PR04CA0115.namprd04.prod.outlook.com (2603:10b6:303:83::30) by DS2PR12MB9662.namprd12.prod.outlook.com (2603:10b6:8:27d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Mon, 13 Oct 2025 14:35:57 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::4f) by MW4PR04CA0115.outlook.office365.com (2603:10b6:303:83::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:57 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:41 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 33/56] x86/alternative: Avoid re-patching init code Date: Mon, 13 Oct 2025 09:34:21 -0500 Message-ID: <20251013143444.3999-34-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|DS2PR12MB9662:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c3144ed-c785-4a2c-2003-08de0a65d2a6 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?nfmhyvMnQqwJlGSuJydzxDDNfEKVJlzHmckMA+1yoih6wGvfVjfpJPnPL0G6?= =?us-ascii?Q?lrPzGILZuHJk0jy7060mUN2+wguITuwrxVrrmetH2zirQvFXIHFGx0p+7uwr?= =?us-ascii?Q?KsiEVM7vmFYEyRQLd9tuRLXmIWPHBF54dSYpaWHf4KYp2qmCTcYrcCx2aUTP?= =?us-ascii?Q?z+hApHo8Z5UXOcJd57iMi7kEaSp5y37nuGJvpXgVELKC3N8q1eq1TSlNXfSd?= =?us-ascii?Q?JUKdnWKZz86wcB5UR26yaxm93EV/1HAKJZJifLkktUQnOJG/v2hcJ8G6/rJa?= =?us-ascii?Q?Dh0Yb4dQJA0y5KnTG4V2kqSbOEBUh8ejA8Kii1yfnip3GKOgpjPsS76+S97l?= =?us-ascii?Q?yrcYi10YD37tRWoeUFC+/F1FUIZNGW5rWNaqSkjRNBhc49A5Mw45mBPHnw/a?= =?us-ascii?Q?GxOcksZO+1F3K1E0Y7287Q2YoBr6fuhF/GXTxF/xmxof8SkW0LrP0UoF3n+C?= =?us-ascii?Q?+YFae4pF00ZnvNMG3+I9uRftThf7tlcyJkgaSbK+zIud3QKJewmS71JhGTPj?= =?us-ascii?Q?5CKu/KZOVT+I90JdSI9HFNw6sDCIg5maeRirzfbsLQP+BXlzORQ7bDEndF5V?= =?us-ascii?Q?805i1Tgqw2alLXVM+89NSAhJSEO155Y+C49Zu02V4VtG2Dy5lbE1jHbffbO3?= =?us-ascii?Q?sQI9Hp4caGV9Vl3RszqvgZcB0SmkvhMW4EKnHqbqJzetb6pmyZUbtcKHgWE1?= =?us-ascii?Q?aClW/AqW9hg3Fk3i10MqL12WEw4UAPWvWvcxpKyCHtdAQSEIQEauvLB/Ohv5?= =?us-ascii?Q?EaXzOV+Jp1XxoehG8KPTU5EspWwhAGOFLRnJH7l1PLfNwgL97PajODjQ5bhD?= =?us-ascii?Q?OSDsmkdoUDnprjpegULvSkYNMZCTHEx9ooJadTgGXNgsfZlNc1j5pPK3iOls?= =?us-ascii?Q?dPaIJrJWoth1hQ2zrPrH23w6SPKV/AW0BRJsJZKspD9TG8E2951I2jj2zCfN?= =?us-ascii?Q?Z5XHEeNyKtgmefFavEvgo/+n8Z27VshZ06OfrSj86+VEQbJYy8yxUo/QTD2l?= =?us-ascii?Q?wAFeFtvgOPbRNFHy1l2O9Ti5PMRGb8mLYdiAnwfTQZVbE9ArlTpQSgLG8txR?= =?us-ascii?Q?UJpLzejzqeCnBdD1onjGgX+3LjQzK8qINdTRiFZygwCZzGtNunGLQNlhQDEU?= =?us-ascii?Q?X7Bq0SRA7BGjC99Ax+H7fLzpRTwQ3bOJvEj+3RD3uYIRjaZMuKvEr1M7fzUC?= =?us-ascii?Q?LwtTMwqWLYF59F0k7OYxdk49LqbBGV4cmpES59YgJpkGOOOUtUh516sh4qFL?= =?us-ascii?Q?mTTdeBbQCOs869C52C6rl0vOulUTxVMWowqHFABbaceBdmE4Akot0Vu4Yuba?= =?us-ascii?Q?uSQq8IYj8cvDz/B1wS6GxmAurD/RpwT5jn4GcGHgQ22UJnTOwMJ0xi+SCqrg?= =?us-ascii?Q?dV1kRM9xLkN2fRk5Bk3JNZUJulPDU/kqbsiGZYX5PpOZBlj9oh7AhvVdhRPi?= =?us-ascii?Q?7vW05Xg8eCjrE3XGXIybgaxACrpsKzsfIadn8e48bV8Bqeqwp2hwOW3xIyDm?= =?us-ascii?Q?jCPCGuN/KSwXHj11PUtAGa7i/M/i+tLJ3GMnvAKI9emUEOKQjZrXESdN5XeP?= =?us-ascii?Q?3G2LbdalAfcjRlkwnCM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:35:57.3865 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3c3144ed-c785-4a2c-2003-08de0a65d2a6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9662 Content-Type: text/plain; charset="utf-8" During boot, all sites should be patched but during re-patch, ignore any sites that are in the init section of the kernel or a module. Signed-off-by: David Kaplan --- arch/x86/kernel/alternative.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 9fbec219e98e..a821ea37fc29 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -298,6 +298,27 @@ u8 *its_static_thunk(int reg) static inline void its_fini_core(void) {} #endif /* CONFIG_MITIGATION_ITS */ =20 +static bool __maybe_unused repatch_in_progress; + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +/* Do not patch __init text addresses when repatching */ +static bool should_patch(void *addr, struct module *mod) +{ + if (!repatch_in_progress) + return true; + + if (is_kernel_text((u64) addr)) + return true; + + return mod && within_module_core((u64) addr, mod); +} +#else +static bool should_patch(void *addr, struct module *mod) +{ + return true; +} +#endif + /* * Nomenclature for variable names to simplify and clarify this code and e= ase * any potential staring at it: @@ -658,6 +679,10 @@ void __init_or_module noinline apply_alternatives(stru= ct alt_instr *start, } =20 instr =3D instr_va(a); + + if (!should_patch(instr, mod)) + continue; + replacement =3D (u8 *)&a->repl_offset + a->repl_offset; BUG_ON(a->instrlen > sizeof(insn_buff)); BUG_ON(a->cpuid >=3D (NCAPINTS + NBUGINTS) * 32); @@ -986,6 +1011,10 @@ void __init_or_module noinline apply_retpolines(s32 *= start, s32 *end, struct mod u8 *dest; =20 ret =3D insn_decode_kernel(&insn, addr); + + if (!should_patch(addr, mod)) + continue; + if (WARN_ON_ONCE(ret < 0)) continue; =20 @@ -1092,6 +1121,10 @@ void __init_or_module noinline apply_returns(s32 *st= art, s32 *end, struct module u8 op; =20 ret =3D insn_decode_kernel(&insn, addr); + + if (!should_patch(addr, mod)) + continue; + if (WARN_ON_ONCE(ret < 0)) continue; =20 --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012017.outbound.protection.outlook.com [40.93.195.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9926F30DD1A for ; Mon, 13 Oct 2025 14:36:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366164; cv=fail; b=DiraHauZdvJOgvm/Elzkqz1jdwYYqm+HEGr9o7OcNzQYZA6d4CAF8/V39Bx+JKZ/Pk8OPJPQQM8V9hslxAZe1BYAA67LUUuE4d2XGrwnNefPhrBp5XCCc79xNp9TSra0muEm3/GJ5EVHYSARP3a2r68+XqiGhclmR5+dUe8aVmE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366164; c=relaxed/simple; bh=mGW/vkSeRiwLWzSHLryU0/XYqsoGK1XpU1gMfl9robw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=b46c9mTJ9H1w2TbzTFRDPpIbczl96vFAMiHzemQiCKvHeTIjeK/uIW18lwFGNxflW0wdEHWifswr/fFQ9qeZaz23AWYK5P3cLIQ5EM2LNIXlB3qOXDknu2FswpziSdDb4+KcY7HX55u5tiq0skgY2eMZmK/Dix+Wg7p2e7aiUOw= 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=SnWnSzm2; arc=fail smtp.client-ip=40.93.195.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="SnWnSzm2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C8+y1kHcopM+TV19fzBAlDdcCr4NVvxr+dfANGLdi/HupZprhobFjl2kNU78rdX9s4fGWNyCExE8QTcGPuStnE/VyWLutnCGXN2B9/eGqLXa78jFAMe3qJr/PU3fUod/iO0zFQiJ5a6WlBx2Fu6EtxRm7xSMzcoVBnFJ4dYZlkkEd8o5ROenw8ts9V/XaMwAstCJvHcfjkjyUqHj3BEthYUOcGRHMPQpcVVQxGVYvgtSHhoFz7Kq2ahlJw5SKMiiDkEqnNki4blM4quYUlEEMxskzHKCweEcabZ6A1ItFiOPXhbcTBg2OyQtmuuKM5OQa6Mqw4s9F0r6tjl3HjBejA== 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=f5A8TAb/Aqsv6GFDARqrHNFnXeHVh8cGNLik9QdaCko=; b=Y2agdfpwwBCDyIBgA9mwz276bnfJkdtGTOaIQC7c/7sjeJAcbLq323nJos53SG9UAKjEsDHiEP/zb2U2EGtX1OAHQaWCfWS/cmmwRrvPpfP4zLP2R0H1sQDMUrek50ld7BnZnZDhhjaPhk8xtiP+8yUFLdv0SP3dZYIP1Zv3o2NrbcpNQqh1GUe8g4Xxl8U4hHTaBpepAPowLgYeaJ6g4b6KAZ1hmbKazIG9+TpPoVBQjpmO3WiVrxsuwWoDXf2idDTHufY72lq5BrOXBBDsMUwBooJ3ALcSSvrtnrH7Oyu50YdYyWCwcyJA3+hd9HY5dtO7AYrxFtQCal+QOch7Cw== 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=f5A8TAb/Aqsv6GFDARqrHNFnXeHVh8cGNLik9QdaCko=; b=SnWnSzm2lmXg4WBqGjrAyzoe4janfHTNAAmq9ihxtOPUr8yeD1YcnGQGd8SNzmeEa939NQMwxJJ8cZwA0FfHh/3nztBa+ejf3s3nSBy14P76ObZ3wXugX/Fx68J8yVfkWyfeQm9pf7vuuOKTiTm6FkNRiQ0eRZ+JyOjyRkGMYdw= Received: from MW4PR04CA0102.namprd04.prod.outlook.com (2603:10b6:303:83::17) by MW4PR12MB6973.namprd12.prod.outlook.com (2603:10b6:303:20a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Mon, 13 Oct 2025 14:35:58 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::61) by MW4PR04CA0102.outlook.office365.com (2603:10b6:303:83::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:57 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:42 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 34/56] x86/alternative: Save old bytes for alternatives Date: Mon, 13 Oct 2025 09:34:22 -0500 Message-ID: <20251013143444.3999-35-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|MW4PR12MB6973:EE_ X-MS-Office365-Filtering-Correlation-Id: c89ec11f-b3bc-45fc-fc69-08de0a65d2fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Y+ee4I3sbr104bTqBTk8FqqzUG+gWmm/NHoqhTTDAgt0+h0p7CUzur33rqP4?= =?us-ascii?Q?KPIVMPaSQdstdD76Lzt+iLn/p3qgBY5uSzmTTJLuA905Ss6PT68wQMM5FiSB?= =?us-ascii?Q?jF09PRdYfL9Zfuf9owEJU3IQUCpKdtcsrZoXzsEAo6lqnZNN1W5C/hore+5X?= =?us-ascii?Q?Srs71g9X2ymUdCJEZ8GuqWGBWIMXkQdOMqWNwcxgTlR4rnA/cQmOvOhka7Aj?= =?us-ascii?Q?zwh+smTC5SWO3jGFJA9madbpfvqNXLWal0ocn0BuBhkvOQsolUZk24Ahqm9H?= =?us-ascii?Q?oxpAX9p8k8euRrtx7uWfPRQ9bg3DjdW3JfzZjcOv9sLXhvctESanqDJwo98L?= =?us-ascii?Q?5sZK3kP2Ajbd/YelcR1Z3ZqhtQKGLP9YEtnbRGbYJYu1mfQDBJlgZnFB3G6r?= =?us-ascii?Q?ShUGkBrrpUGYb/0PjApEdarb2eSznEmo0MD5KkABz5ZJNk8ervVpDWK6nmoE?= =?us-ascii?Q?XhFTK7ri+VsQbnbjxS6/bnfZwAvpOCg10+xsve3zFApUhYPIf5K/nGOhAGUu?= =?us-ascii?Q?8b46nw6Wr2iduQlL1qSA6sGW3Q265XUgGbMavoLvjzYRKNcGuFG3icTblYxR?= =?us-ascii?Q?lJZ71GCY55LLSNBGN5F5Y4NApp6Hp1bV9AFPOoRVlVN/V69edNx3eADir4nJ?= =?us-ascii?Q?NBeAcAelPAGYgvTze7/cZ/yG/UHIRZm6BM1qiQ9G8KX/jD49grJ+Q9e9XoTN?= =?us-ascii?Q?GabxWhMNjnzpp06f9oTvqbIzpn6arn2cbsTNDg3lmVbE6bbxN47NsmiSeh4Y?= =?us-ascii?Q?AUeYGsHbNKXgsdZ5eVVRdUIav5pz64O1JOBbg7NmlTPrS1AtggWsFH9u02pD?= =?us-ascii?Q?gUfo7OcbnYGEuoUMibjRC1zwQzt/Dxx9Ft3LKRteOYMNONnlFpBrIlKh+zbr?= =?us-ascii?Q?NlxzixtxHxMM10vIqTdZEg6gz9yvh8JmykFhcFZkf+o0z/umdsMeG9ZgUs9s?= =?us-ascii?Q?qULO9KAAyiv8MCpop1eZHTXxb/9g7q3Kw1SFX1A2UG4Y0rxL1x6zXI6ibWQr?= =?us-ascii?Q?CcYPz/Ky896+ES6TQH8zlynxj3cShMMNzFY0gqOYDVPCDf34Svi7jWx/BW/d?= =?us-ascii?Q?L22YPUI5uOJ5qIMEdmV5ryggGEbkY/smFsWLMS7f1r8DlURMhKq2UJ4g3vPX?= =?us-ascii?Q?CJ8/s8hIyKZ+YoxZHbYTJRS5RiL+jpS797fxWmTTazQ5Semo2NukcmcN1+i9?= =?us-ascii?Q?up3ZPeX7wO+JE0+SbYx00C+pfn03nniKT/S38PkJF/xphTPcDD4E64IkKt4e?= =?us-ascii?Q?xSTqH+kpUFwnMBCf306juVypmkgIX0TDmcUkL75V3hCEKN4VxRmLM4785Hof?= =?us-ascii?Q?KcdjEVBIo+5diKpUJS4tmmkGEwDz1S8ZtUOdAa5f5mj4XpXMhz4FH+5CiL51?= =?us-ascii?Q?7EnYNfgb9o8CBDjXMEp4fpWnc1T/tLzE1LRfJcx+7rcprmOe1bUrrcckujP7?= =?us-ascii?Q?FkdkXx8TT6jkY2N4/KRED40ezm2Csc3+6YHNldSpj7RIY2d4YVmoV/nlKpU7?= =?us-ascii?Q?4nHY38ORYV/L91++qiTgVMLRLlmb90Wk6lSkvz91KlqhHQOWo465NbG6Apxa?= =?us-ascii?Q?Rb8TKLCW0jPcJDDEG6g=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:57.9669 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c89ec11f-b3bc-45fc-fc69-08de0a65d2fe X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6973 Content-Type: text/plain; charset="utf-8" Save the existing instruction bytes at each alternative site when patching. This is only done the first time, and these will be used later to help restore the code back to its original form. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 5 ++++ arch/x86/include/asm/module.h | 3 +++ arch/x86/kernel/alternative.c | 37 +++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 73fd8ebdf8d9..3ee781d61927 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -97,6 +97,11 @@ extern int alternatives_patched; =20 struct module; =20 +struct alt_site { + u8 *pbytes; + u8 len; +}; + extern void alternative_instructions(void); extern void apply_alternatives(struct alt_instr *start, struct alt_instr *= end, struct module *mod); diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h index 3c2de4ce3b10..2bb602f99154 100644 --- a/arch/x86/include/asm/module.h +++ b/arch/x86/include/asm/module.h @@ -19,6 +19,9 @@ struct mod_arch_specific { struct orc_entry *orc_unwind; #endif struct its_array its_pages; +#ifdef CONFIG_DYNAMIC_MITIGATIONS + struct alt_site *alt_sites; +#endif }; =20 #endif /* _ASM_X86_MODULE_H */ diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index a821ea37fc29..8037076e9301 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -301,6 +301,8 @@ static inline void its_fini_core(void) {} static bool __maybe_unused repatch_in_progress; =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS +static struct alt_site *alt_sites; + /* Do not patch __init text addresses when repatching */ static bool should_patch(void *addr, struct module *mod) { @@ -642,6 +644,27 @@ void __init_or_module noinline apply_alternatives(stru= ct alt_instr *start, u8 insn_buff[MAX_PATCH_LEN]; u8 *instr, *replacement; struct alt_instr *a, *b; + u32 idx =3D 0; + struct alt_site *save_site =3D NULL; + +#ifdef CONFIG_DYNAMIC_MITIGATIONS + u32 size =3D ((u64)end - (u64)start)/sizeof(struct alt_instr); + + /* Main kernel text alternatives */ + if (!mod && !alt_sites) { + alt_sites =3D kcalloc(size, sizeof(struct alt_site), GFP_KERNEL); + if (WARN_ON(!alt_sites)) + return; + + save_site =3D alt_sites; + } else if (mod && !mod->arch.alt_sites) { + mod->arch.alt_sites =3D kcalloc(size, sizeof(struct alt_site), GFP_KERN= EL); + if (WARN_ON(!mod->arch.alt_sites)) + return; + + save_site =3D mod->arch.alt_sites; + } +#endif =20 DPRINTK(ALT, "alt table %px, -> %px", start, end); =20 @@ -664,7 +687,7 @@ void __init_or_module noinline apply_alternatives(struc= t alt_instr *start, * So be careful if you want to change the scan order to any other * order. */ - for (a =3D start; a < end; a++) { + for (a =3D start; a < end; a++, idx++) { int insn_buff_sz =3D 0; =20 /* @@ -687,6 +710,18 @@ void __init_or_module noinline apply_alternatives(stru= ct alt_instr *start, BUG_ON(a->instrlen > sizeof(insn_buff)); BUG_ON(a->cpuid >=3D (NCAPINTS + NBUGINTS) * 32); =20 + if (IS_ENABLED(CONFIG_DYNAMIC_MITIGATIONS) && save_site) { + /* Only save the original bytes for each location */ + if (a =3D=3D start || (instr_va(a) !=3D instr_va(a-1))) { + save_site[idx].len =3D a->instrlen; + save_site[idx].pbytes =3D kmalloc(a->instrlen, GFP_KERNEL); + if (WARN_ON(!save_site[idx].pbytes)) + return; + + memcpy(save_site[idx].pbytes, instr, a->instrlen); + } + } + /* * Patch if either: * - feature is present --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013063.outbound.protection.outlook.com [40.93.196.63]) (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 8530430DEC5 for ; Mon, 13 Oct 2025 14:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366167; cv=fail; b=fWaioqQ04mNZPsf6FPs5tusl8uVoljiuYX+07HumGhJ0s0wDXswWMWqj7yMclvDUw0XJesDIqpahp3TP3VlAtQz2k3Shp/PIB8ySifMfrdbHyxceY8bvBZ9eY3DK754uXI+dO3lEcpdrVW4lptVaOg7pQw22IpUmb4aGv6MLuy4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366167; c=relaxed/simple; bh=jUSloZLljdx9a9AljgG6stR6EyE1Wd9P3uvhd3gtOXU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kNhXzjsopY0LWGZg5qSWka+4joIq3Lgs3M0KAvEoS2v2Ri62klDc2BuLF6z9BfavZamcYn61TtJxr1e7UdsDm0MfUWKJSLC0vVpvuD1P4phcs0jvzTDHBjqN2zvVhPu6KPGuQUOjttKWkR3H59bNus/o8k86Dax3QMRPAEkKicI= 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=Df/M2Krf; arc=fail smtp.client-ip=40.93.196.63 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="Df/M2Krf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w9jwODXrA0EugB3rwDX8er1K37vqHg7MXnrwb3iuku3OT8pbaeX6yBHQaWDYJTydia6JnVaLhb2j6Aho6hQWV2bPH5tbmeFEJWIDfthZaU/wtIpvHW+KTK9g8zPCMdRR5KjYqyj9CMdCRsaB1bQyJD7fAb8LBq+jk3didOZ6Qju19t0ScCSqLebputRGZ1EaqZmEp5wOfZgO7mhWSTc9D+Qd72J84rkg5w0fyOUZ6PawHAO+egwP3YfAd19a5URI82mK7pVMPQduCa0cN9pP9JuvUUUo7pRM5vA16/q4kZzMsEB+/IWysDROzFynmIgwtRVkxEllwOeTlgpmcpEgAw== 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=ZOpK0j0IQAwxerGIoz+Xhr564JYPOMyvCEw9lfo8e6I=; b=dpYSoMAONwDmYA7ZlCIxNCRgypV9tGxUuAS2JD62Q1OuPQZNdIFiZ4MXywgeI8qTkhyf+yhbVdsJgRmEuAn3fMft0T29E+trj8Ai/hy3j/wbCrleyFqwpFAU9dcPpl7QDWmcojSWhkaNci8Mk7T1i6874tdPye2n6ha4ttY5bdRe/3CFPzocxKHp5XuLQFZUo4f8h1z9xVsrJZCE17LmFI4b7yM+d0Aa+YxFaOIirZZ7asSNFmPavx6PWX8Sas6oaevRbkheUYXKiTrJSjZ0ckSQv6Fs7bQ3JWOqapABzhAaRes26j3ioaDHsoSSAOLBH43tmjw7ZIBDhOJoVJrt9w== 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=ZOpK0j0IQAwxerGIoz+Xhr564JYPOMyvCEw9lfo8e6I=; b=Df/M2KrfRZPYKY0KrnoXJN2ioQknjvsmCXXcowhuJlubXgHgNSJl5mICwLTH6TJziRhDRFUJXrVLHtt5QAk1cKrd/tpkxt/HtHcs/Oer1j1v7Zp/wBaPqg08RMn3ROUKhiaq5BXAtSpXJxUqpQvT43cj+ogi13xrqQt9fjIUagg= Received: from MW4PR04CA0110.namprd04.prod.outlook.com (2603:10b6:303:83::25) by DS0PR12MB8271.namprd12.prod.outlook.com (2603:10b6:8:fb::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:35:58 +0000 Received: from MWH0EPF000989E7.namprd02.prod.outlook.com (2603:10b6:303:83:cafe::31) by MW4PR04CA0110.outlook.office365.com (2603:10b6:303:83::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:35: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:35:58 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:43 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 35/56] x86/alternative: Save old bytes for retpolines Date: Mon, 13 Oct 2025 09:34:23 -0500 Message-ID: <20251013143444.3999-36-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|DS0PR12MB8271:EE_ X-MS-Office365-Filtering-Correlation-Id: a69d1c32-f999-41f1-5523-08de0a65d346 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?eadxEHpR5xVyJXNxnOqXgDthGi05vYPUtzDNBuXj8QY+dztqsjSUWfZ+YpbG?= =?us-ascii?Q?vYRG3XaFJ2qcwjn0DP+sRox30+E79dloBSQlkm7gSlQLH75CZsMhSJ34uFAj?= =?us-ascii?Q?9GLeQ274aJAXi391aGz8TewxAOSdQkpMk3mk8zM3xOTHQMEUvn7qwh/9d+tR?= =?us-ascii?Q?UEwOWDAP0v1GqMhXICnfeBI6hE6yFjX76s/gAGa6sJ8ZIbwRGhxwMv6klQS5?= =?us-ascii?Q?jslg2x/TjMZHXxhezRf5zxBjGg5nhNtYfSSs6QntMqMkH6MhcjwVlLuzA4a8?= =?us-ascii?Q?HUZmVmy3SXD5dBSMkfIjEtEbAJN/MiR/vz8iJR4WMUQsAlf4vkMdSCP9RG7T?= =?us-ascii?Q?k9DG5UyINE5BTJ2y6Dak7t9s2wuBZ/0xxLfDpFiqHyVke2/tHzsxw7JCjX+Z?= =?us-ascii?Q?TLgetdDzOYXdjLqh5ns4Y79GNXCxypbMXEt7iCQMW1hIdf1XB63A+ov4F5AS?= =?us-ascii?Q?8ZaJp6PEH4tdmAu+yudfy0p2uLX2pdM+Nvs9Ezd1xl/ARMIYtOZKfkNhpHg/?= =?us-ascii?Q?0delhzR6MNTp2auLoqDxzE8hokzJRSOrJ8FWwMpiSMM5ffPhdZ47lWXU6+II?= =?us-ascii?Q?gyFICaRm68QktpQfCg9cticMzHYtuGM+5rmW1nQXRholo7XHOwbOqdBn7vxo?= =?us-ascii?Q?17bpU3wgJ8xxX2W0ia+G5l5WsxkPmslO4oKMYUziemtpuwEQCBGQSt3YSGnb?= =?us-ascii?Q?+sViR87UJNUdF8UlZcF9n/3XVcOy3iIML5V0Dxj6/54zpj4wNYdqwLK2i/wm?= =?us-ascii?Q?gUcxUWXMjBIRyHJGmqS/C7QoSyb75eF0KKHpt7SlVzohXA7yzVF/B3WFLfOT?= =?us-ascii?Q?BVgP7lGDWfQ88RS07rn0ztzVr1fzvqQAcBsPuC1TWdRTjGW3MfsHsFFgmE+/?= =?us-ascii?Q?vYlQyA2a1fdb5jd0bLCHmMg9s8wq0gsjxz+yLrdUqancIJC10lBQoiFBvvee?= =?us-ascii?Q?e8fNg1MzDLgkFqvpR3RJNk4LdxrEBQWOtzMqjqq8nDExaWeB5g82kA78inBW?= =?us-ascii?Q?LidARy/bTsG0Ca5VxVLye+aDx1ByMjm5/0Usfimq7PCMqYb+6N6u68phzw82?= =?us-ascii?Q?GKvjQZXxXgN+Y8tfwJiI0az18PPdO76OvKmv6ofNpTL6yOxC1W7C10/qLHp+?= =?us-ascii?Q?MZaAoi8ajr+EpKEX9u65uFijgU5vRwO5U7K+V5y19IGVsTA9/4PAI1mcVVPf?= =?us-ascii?Q?ByWQWc4CkJK/0BwSt3x5dPA7nxF/2pyRRvjJ9j3Z13Ah6mve1In3uIQdgbOn?= =?us-ascii?Q?vhShz2ncJBIzM1gaQilvkQOQF+UpJ18E8t7AwZe1ScuhqOhoRFhzz2G+kJPH?= =?us-ascii?Q?Pu6UXqZxBLyJpCiBlPfVltCjCMp4Ax3eMsCZaOXOFR5m/JNhL9g+fIAU+GEw?= =?us-ascii?Q?euJ8HumMTLLNQpC/+8lNAi11g9jGc86NiBDesQXTy85Iz7gPv5XxSxTHGrty?= =?us-ascii?Q?WPSxDKAXKOGsq2ZOKb+3yj8y5nkRC7XzJ7vpLoBRhGuI66sMfDYyqkO/pMHE?= =?us-ascii?Q?TjYrPWclL3kmqoTNQTPsR9fJ7smy+cWgNw+PXujnkUItjnd1p3XhgS4QF6Pw?= =?us-ascii?Q?yt0cSWRLFoOq/5BjzyY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:35:58.4351 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a69d1c32-f999-41f1-5523-08de0a65d346 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8271 Content-Type: text/plain; charset="utf-8" Similar to alternatives, save the original bytes when patching retpolines the first time. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 5 ++++ arch/x86/include/asm/module.h | 2 ++ arch/x86/kernel/alternative.c | 37 +++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 3ee781d61927..24a4afbf163b 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -102,6 +102,11 @@ struct alt_site { u8 len; }; =20 +struct retpoline_site { + u8 bytes[6]; + u8 len; +} __packed; + extern void alternative_instructions(void); extern void apply_alternatives(struct alt_instr *start, struct alt_instr *= end, struct module *mod); diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h index 2bb602f99154..d0c39b921408 100644 --- a/arch/x86/include/asm/module.h +++ b/arch/x86/include/asm/module.h @@ -21,6 +21,8 @@ struct mod_arch_specific { struct its_array its_pages; #ifdef CONFIG_DYNAMIC_MITIGATIONS struct alt_site *alt_sites; + struct retpoline_site *retpoline_sites; + int num_retpoline_sites; #endif }; =20 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 8037076e9301..a02dc6bfb696 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -302,6 +302,8 @@ static bool __maybe_unused repatch_in_progress; =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS static struct alt_site *alt_sites; +static struct retpoline_site *retpoline_sites; +static int num_retpoline_sites; =20 /* Do not patch __init text addresses when repatching */ static bool should_patch(void *addr, struct module *mod) @@ -1036,8 +1038,36 @@ static int patch_retpoline(void *addr, struct insn *= insn, u8 *bytes) void __init_or_module noinline apply_retpolines(s32 *start, s32 *end, stru= ct module *mod) { s32 *s; + u32 idx =3D 0; + struct retpoline_site *save_site =3D NULL; =20 - for (s =3D start; s < end; s++) { +#ifdef CONFIG_DYNAMIC_MITIGATIONS + u32 size =3D ((u64)end - (u64)start)/4; + + /* ITS code needs the save_site pointer even on re-patch. */ + if (!mod) { + if (!retpoline_sites) { + retpoline_sites =3D kcalloc(size, sizeof(struct retpoline_site), GFP_KE= RNEL); + if (WARN_ON(!retpoline_sites)) + return; + } + + save_site =3D retpoline_sites; + num_retpoline_sites =3D size; + } else { + if (!mod->arch.retpoline_sites) { + mod->arch.retpoline_sites =3D kcalloc(size, sizeof(struct retpoline_sit= e), + GFP_KERNEL); + if (WARN_ON(!mod->arch.retpoline_sites)) + return; + } + + save_site =3D mod->arch.retpoline_sites; + mod->arch.num_retpoline_sites =3D size; + } +#endif + + for (s =3D start; s < end; s++, idx++) { void *addr =3D (void *)s + *s; struct insn insn; int len, ret; @@ -1085,6 +1115,11 @@ void __init_or_module noinline apply_retpolines(s32 = *start, s32 *end, struct mod addr, addr, insn.length, addr + insn.length + insn.immediate.value); =20 + if (IS_ENABLED(CONFIG_DYNAMIC_MITIGATIONS) && save_site) { + save_site[idx].len =3D insn.length; + memcpy(save_site[idx].bytes, addr, insn.length); + } + len =3D patch_retpoline(addr, &insn, bytes); if (len =3D=3D insn.length) { optimize_nops(addr, bytes, len); --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012038.outbound.protection.outlook.com [52.101.53.38]) (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 C56D0309DCE for ; Mon, 13 Oct 2025 14:36:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366180; cv=fail; b=bsoDWM0AlglMeFVQKhUY+Din1Y16GAaUOiCwdtl8Kk4q6Lu5zazZkJpSTVK/Zna0NuEcHkopuTN2iv9fMfMlZ+8aYNjgoxeAz+5Yqrbp9kiTRwxDZI2x5uxm9FQUQm9GS8OjTsbJP78WGxvEilEh2uVFB+pF6eGeGYp1wWRDjeQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366180; c=relaxed/simple; bh=ivtbyWmVAoBE5vLinfYc396xp9cMgZl74TBBmFLZ2cQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MIWyo2A9m2gqudrUtswGuSi7EJnfPCmsidhwrhCD1McR//hT6ryOP40BEw/bJ95Cs9g/thBKkx8I+1F3rEfum/9oVUhifhQsDK7WgUjUj5KsMTnjzg7N1nKTQBSdjo4bMFEf7y23/hhBxL+JSdgpBDqHUC4Su4/u4mApWEvQMUc= 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=p9Oph02I; arc=fail smtp.client-ip=52.101.53.38 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="p9Oph02I" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ch6HxYZ6lSlQwJJ2Z8G2DDjx49nEC7CL3IasU6nUYVrz8SPZQGjHd9VZFuVwh+tmAlmeG/DMnxeFsyDdEUSiGoe9y4UcgdNoyhAnX6jf1KdPwP3hJ7HMgZqM1H8VSrAySHkdv2So039Nmmbpave3lRzOE32UqLHj+QO5AclC3amuPTF9rBuAdCjF9Ip3DX0/GL0Dj2LQMoq8UA1sqJpwqEKunfs2LNto19gsrhv2zWPGIkkkEyiFMJzdAH88FuHMIHF21dqGqNKfVjdazpniERPy+4nntnZ14k6cs+mXAA1173Oz0Vw6IwzcT5XB/Pwr8aB2VGOh9Mg7W1iKN0hfcw== 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=Bs8YiRAB9tWEXiTWKuuFM6YsKHu8s9z3Hbon/oZySQY=; b=L6iG7f4G15/RvIj2EcfkgPAzEWRZ6qPm9gD2flsdSAiyTyGAbT6FR6cPvbLZkBIbdSiykXE6klg17longgTnIae1EBf+zooZzsmQ1AfQJ7m26PXdWCpNDukfA06yWMh+CGWHnU6Lq7AjJPjVKkIU5APFtawx1Qg7lzL/rUWW+357AtHYve+vyjlrteZ1MHJcK0HENXmFeNaQf/GKzLuZ3ivi2t3F0BjXlgNeNI0OVakWqIANWsam5SY/4Yr6YBOhYtLK+AWX8hnGgph0Zwwa1IW8vJeiDNylgLW0s5uNUKlYdhRq/R44MUurfD3WZeAVaMkCeDRwntBmYOsK2TjU6g== 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=Bs8YiRAB9tWEXiTWKuuFM6YsKHu8s9z3Hbon/oZySQY=; b=p9Oph02IcZc+meo+dM5xxGJsGZRX52VeDm+g5XkwOPz3/wwVxvfQcPhXAAWTJAPutajmfcC9eJVOafsFUliJaYDsrPmNdH9+2QnYwu68aGNMuVcGqHw8gywIU3sR+8urdl2DvWI8v7jm1UEMMmUEhd3m3R6WZINZf8ZRW4XtYfQ= Received: from BYAPR07CA0065.namprd07.prod.outlook.com (2603:10b6:a03:60::42) by BL3PR12MB6523.namprd12.prod.outlook.com (2603:10b6:208:3bf::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:14 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::e6) by BYAPR07CA0065.outlook.office365.com (2603:10b6:a03:60::42) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:13 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:44 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 36/56] x86/alternative: Do not recompute len on re-patch Date: Mon, 13 Oct 2025 09:34:24 -0500 Message-ID: <20251013143444.3999-37-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|BL3PR12MB6523:EE_ X-MS-Office365-Filtering-Correlation-Id: 47d0134f-6f9e-4f49-015a-08de0a65dc0f 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?ztQVeVVcKBXTQdWWQuasHrjNCZUY5hGAwEJx4MQER6NSFVLcJIKQqc4/G/Vg?= =?us-ascii?Q?8avffxvybcJVifIRe6lSBJAG80ejQeSWmHrBBtQXp904lMctwWPNca5ODVU1?= =?us-ascii?Q?O1DNL3X9SOjGGAqmtk0SF9nyHHdST/cZnZmLCz7I0Aj1WbAZYZgAXiixOs6B?= =?us-ascii?Q?Bv7MplQnhgufhIbtdVIhJqQKnWSOAoqfxoMVe/VpPiTDCvXG5VQ9OS3wSq48?= =?us-ascii?Q?DLY4XrrV4QkveRdnjZ/GZH8U2UeGaZRDESkZjUxD+vBiQQZDiBolSUIih/6H?= =?us-ascii?Q?taEN0v0i4z4OGCjME4DVP9tFjAdfTGMm3dUgI1VlbYLqTi7aVMXg6lwj4mEi?= =?us-ascii?Q?ScVo5emXNHJGT+hLalhu4eSwU31of6iriBsGbR2CPw2Gfe4jGKiCmKe42qsb?= =?us-ascii?Q?2mLH8uyDyQKD4jQ9DEV2iRb9djS0GCOuIl7fGAFN2j83JHWh+NRnpRWcke3O?= =?us-ascii?Q?Rzld90053RGOv8pJ58VpHFvuCKqOJ18TGbzaMrQ5Ai7KAphClrbLPBvADFZl?= =?us-ascii?Q?sOnZC3jXsIj9UMG5ENBBfcbA81Nzv9EuOS9a1zBbEMNdy4/fYd3Nx4JUrga3?= =?us-ascii?Q?kXvpH4f7Mv0Gu5dSHntuOQAoGb9MukcQ6WBRjSnOfI+U+UY64SRc9rLb2WqG?= =?us-ascii?Q?wppEjgnYf8F7wCGt/DRkGx/jsYkgecNtKI9odkJLSP560xrxVcCT1KtD95BJ?= =?us-ascii?Q?JU90ixgJ5WcZg60ftkQQxgJ6hLb98t+U18dqUdP0zv+lTfFsux3AAMcmgnuo?= =?us-ascii?Q?w2zZUH60HkwoHpRbRCQ3QE6P/a6WQpUtHXpRP2JXrnqGg25SDvtVfbiT2lRk?= =?us-ascii?Q?IWPA9YL4diihe66BN0v5MkRPmXM3jVdykX4wMvA9wjxRbCMlJt/kqs7byLaT?= =?us-ascii?Q?pMFBZ9+lvqPMKmRlKpoqB3hbfirwygPNwXPoV/GZre+rR4+M+P2FQFVIUJUE?= =?us-ascii?Q?48qGt6eoh0OgtoEqSMOexanUAPgfVrP/neppK917U5Ow4+xJ+DUZwKaZybQI?= =?us-ascii?Q?HtPYReSEQUuaUtui430mclFfwSgYM3hWhVFDCjtIDLuytYdqFYkJSJHaeUxo?= =?us-ascii?Q?nDIQxFBEF9sQnUX58vbRwfwt4j7OcCD2J20oZSV1T+zySlvSo5sd49EuXBUT?= =?us-ascii?Q?0auJHoZr/haRoPW1X4JdUWva/RmueEAxRMySFanTD0/aj6munQC1P+PDH6pK?= =?us-ascii?Q?HaQw9WVMzyGme6Zuwd4datWo1nfUrGazpW7XAv64/X+0YuFs33o9F81RR05W?= =?us-ascii?Q?ouGBZ7m5xE9Gt+54Lv6ArQG1zXM+4R1S2U2aYDJyULE85hzicH2Y93eYJ5OF?= =?us-ascii?Q?OHMaADAisWvHOZ+DlWrLXkL49OY/tN8p54VJwl9BoRqOrkqKfONso/2fERu/?= =?us-ascii?Q?zyu3npqQIB97+Ab6XKIvbg6XXl5lMQj8Ep7vDxKCZyt5rwK5L02bp73nA2n4?= =?us-ascii?Q?F1ERyQzxejocDJvdYgkLAYzP7FI9asJx/sH1pSB1kf5jeCjb/urzSvAYK+ZX?= =?us-ascii?Q?2brVZoJBZ4NBL86FRr83DYpLA6P3YTrd2PpgpTuBS6poNUfJLat4QNC+QshF?= =?us-ascii?Q?KUhd0bK52l/OGR5SWBY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:13.1734 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47d0134f-6f9e-4f49-015a-08de0a65dc0f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6523 Content-Type: text/plain; charset="utf-8" Multiple alternatives may be defined at the same va, and the logic will compute the maximum size of any alternative and update all of them with the new max size. This only needs to be done once, and must be skipped on re-patch because the memory containing the alternative information is read-only at that point. Signed-off-by: David Kaplan --- arch/x86/kernel/alternative.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index a02dc6bfb696..17b93763d1be 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -298,7 +298,7 @@ u8 *its_static_thunk(int reg) static inline void its_fini_core(void) {} #endif /* CONFIG_MITIGATION_ITS */ =20 -static bool __maybe_unused repatch_in_progress; +static bool repatch_in_progress; =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS static struct alt_site *alt_sites; @@ -697,8 +697,12 @@ void __init_or_module noinline apply_alternatives(stru= ct alt_instr *start, * add more padding. To ensure consistent patching find the max * padding for all alt_instr entries for this site (nested * alternatives result in consecutive entries). + * + * Ignore this on repatching because this has already been done + * and because the alt_instr may be in read-only memory. */ - for (b =3D a+1; b < end && instr_va(b) =3D=3D instr_va(a); b++) { + for (b =3D a+1; b < end && instr_va(b) =3D=3D instr_va(a) && + !repatch_in_progress; b++) { u8 len =3D max(a->instrlen, b->instrlen); a->instrlen =3D b->instrlen =3D len; } --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012044.outbound.protection.outlook.com [40.107.209.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 D5333309DCB for ; Mon, 13 Oct 2025 14:36:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366179; cv=fail; b=s33Flpt3mwpOlBZeESQhigotISqdCLLO60VbU1TIP92eTxMAS6dx0zUcUuS9xJPNaGaQENOSAm9QFFKbwSSm9yxPsO1uGBxu9imKIUeECxcTSj5+GbkIP01HV6vnBWnV4W6Tk1teTBIKVgCGQ65yoOy16k9O+Epp08Jk/mB+XBM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366179; c=relaxed/simple; bh=7Wb+YmMJ6PMV+U+5czs7HxDcIv1LoRswp5mS6K5Q2Cc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=inLz0ktjYPy/twmFHLCvEK85RDWX+/RfFDOQD/9QI4MF3xB8J6q8e25JE8ZD+apSw1A0Rwx0cBe6MELjMntjtV96edNuVKLZAx3BDijjkfLirJws6Q+z3Lt4I19vWVuL+h0FuRZ6zEpqVGgQ2rk0QpaHJZE5hTl7VGiD2O5+iN4= 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=fPOdmqJG; arc=fail smtp.client-ip=40.107.209.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="fPOdmqJG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Isu9gjPnuED5xctasEJvlxUEw0pTFdjyQykvOtx/aOPH9L5lvgo4zcI3ep+6D+QOTNmKVjrBhn9oRdUmnWmrpN14r+JV0Q/keJIkW2P4QcN48CAUUOrXmr7E2sLWho7O4fR0SIGiAElIvsT9cCJdJ5NYoRExQTuFZ02scTNdGUAcW6c4k4UQjLzoQOi13TV5peFU1NG+RkkaS92oliJ6Qchc8JucFYqcxC25lWLw4fXpL6ri6Axv9KjJ1ulngHt0HMbjovcVWvhP2tkYkhRwTrk08zmabhRyZie/fphqoKhru5ON9AJ1b8GDAFwOR2b/Ho67PU8UJ7cHNlZZhmR1Ig== 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=ZmWXIwnSOED75MSOaGvJCM6pBIdBpfl+Llu9IB8nsAE=; b=ZZbuDIvK+6co7xl+ReD0IIjKJtNbTLUTpOATg3VXczPmshwuqpsPA0UWCAI8FlJ8I2Hax9ZQsGfINOaVD1mJZyhz/i1wrBWbX/3WpDexK43z0DLkA0T7iJe2+AXv1yLTGuLgnR154LVdx9NYZ2R4BCsjUnbNeMBydqM5dTLytZDvgYEaDgl3SNwjrh3GgGhvVxq0vFLRz6HppgWSbkzERye+uZzFrBCBad3yvaAaPRHtVqw2SfHPfKf8K8IWYgU/IuIjHEpOgZijhM+tXhWIrG/Kg1LbrozJbQrtcK4z7utLRCGR3driaSQ8oRI8oKfXQWEMEigdAZmKDXKNamHx5g== 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=ZmWXIwnSOED75MSOaGvJCM6pBIdBpfl+Llu9IB8nsAE=; b=fPOdmqJG+1tGRPn4PzMxlHhextWF+tduqX4AEo6TVHXcSVG5Gi4jyGILdkCO6tAInnxhfUGjCfl+8QnNV/ONIZg/R8EkztJA0AmCF1TN4NQFsPMSn7Q4FVQh70n4/NspJRaf9XXEjsTCL8f/c2sEqTs4AK2kfLUJeDV6q6LKVdg= Received: from MW4PR04CA0081.namprd04.prod.outlook.com (2603:10b6:303:6b::26) by MW5PR12MB5649.namprd12.prod.outlook.com (2603:10b6:303:19d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:13 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::7c) by MW4PR04CA0081.outlook.office365.com (2603:10b6:303:6b::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:13 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:45 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 37/56] x86/alternative: Reset alternatives Date: Mon, 13 Oct 2025 09:34:25 -0500 Message-ID: <20251013143444.3999-38-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|MW5PR12MB5649:EE_ X-MS-Office365-Filtering-Correlation-Id: 31b43349-3062-4fa6-5a95-08de0a65dc10 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?ZPfd2mQ5ESZj04O+Tgs5uSpSXZ5/u244InztbtcU7SVQAOaR+Xw+U/n20+Rm?= =?us-ascii?Q?E78asyDvBMFlOb8GuQDgr/bEwAnF0J8Jvenspjfwri91upUYCZm9/QJOWnIR?= =?us-ascii?Q?WqAcNrU9EXppxAHqpuH4R8/xbUHItKphdNGNuBv33rvSyldSPYF79iziuZLe?= =?us-ascii?Q?hD3qZX89dDMWCaCM+wOzMusPw56S3n8yqRans1l+u2p6H3Y5sjp3m+FWK2k6?= =?us-ascii?Q?lbfeD/Rvu0xFZEXBjmbP/zXCwWNrZ2n96iFXLyym9PQowSscpFIDQpHrvUFe?= =?us-ascii?Q?YLFHw+xTwvY8kxbeQsSp11/bCzQeXmBB2uPqT1qlKCZ16sBqv9u97mtnAGgj?= =?us-ascii?Q?2g0vTOpLaEH4RTmr9Pds9kyLa5xiaHHwfYjDJYM3gD7sIz7m52GiF8N4ex7P?= =?us-ascii?Q?ArkhWXBD3RDK/fE5h79qqt5jgH6lTf05SM7GBYjqrWOKD6QwsfdXFo6jNwdF?= =?us-ascii?Q?OimWiNquGLbV/NpQqG4N6szX79aeCxnrMabYLg3M7fcnWZCihH7TcheUGdnA?= =?us-ascii?Q?gFqZFMI3KKJSaVdQ/jnbGsq7DZ910oORv50ArAhK7QkKkttRptQwUtHBsAFZ?= =?us-ascii?Q?Uyg5mBn1q5ofmXKGcmJmEIVVxHu/g8sjR7fw8sNpTWkQ/+oSspIeWNZ4SVbG?= =?us-ascii?Q?C54xf2iOYsZ9C6C0vSZm+3h2gyu0944zwwI1yo3meH/OR8vvuAMFBWDQyCjm?= =?us-ascii?Q?0FUIw/q+9UtbANASnV3lZu8Gn0axp4tYchv06yFB9Cb6xUrvcCaHaqp17/z4?= =?us-ascii?Q?99vGmPnqaOJux229AwQc7Yz1yTjIDDJdzYNwjGd5jCELrhCpnOcRBf2+n4Mf?= =?us-ascii?Q?TVkY/6IaXDGBwIIhsk0ytNTdV4Z0BUX4LCIUa/3tUh6KdYtTFEVAtJQ2tkRk?= =?us-ascii?Q?3P0HQkTBuPdjU3QsBv049NzXpmYu75BYfOibIBFJmiFi6Y8EYug6CNBAjMY3?= =?us-ascii?Q?VaOVo3OLoTyXPqV2Bn7Yg56YuAFJ916gD8rARnWB/i8QpiiQnGi2BOWbGOxm?= =?us-ascii?Q?741vyQValLkbOI2pjxziXCqjN7zrDZnnN4aismWFBi6rdpa0Jv5li1M1/lrZ?= =?us-ascii?Q?L37WOxBDPG/PsvWlS9uiPY6E92vwbTr8o37iVHAvLYEWhT988Hi4/9pTeLLQ?= =?us-ascii?Q?75qz5keZ7U32DAdW8Ee6RojZat/VhDzCA7nX6Q3dA4dkmdkx1tfNFAG37l0g?= =?us-ascii?Q?YT0pCf+RZMa9DCVGlgV4ZApl6DNBR0TiwpC1W4oKIf1temlhJMIXfHh01m5U?= =?us-ascii?Q?EOicnZ/mxGPByi9tLhjEqyUp5sbbAvkw4sDIzJVJpt4o95S5Bf6YzLq6qlgL?= =?us-ascii?Q?e8o72glAmfIifh4cMc+dtH+UsGnQl2hB89N3EArhfWYRsk1GPX/EPl286lP3?= =?us-ascii?Q?dre+ai6m3yWdNK0cUbqzkhUx/B1p+V/CA4nWA7HY2fhhrorsjEsLFko8bLt6?= =?us-ascii?Q?i1q7SiDD194X5b/QICvIFffWuym6h4dwYjvA8rHEpkXeFkvcznckVWAgHqWx?= =?us-ascii?Q?xHCsmjqtcvcV6lMIf2/+T/pqJyYa+3SpARpUOenJ55RiTPVc1+kpeWoRaM4u?= =?us-ascii?Q?QGRlwhF5CG/7o6ZRrBg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:13.1807 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31b43349-3062-4fa6-5a95-08de0a65dc10 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5649 Content-Type: text/plain; charset="utf-8" These functions reset the kernel code back to the original form it was at boot time. Retpoline and alternative bytes were stored when those were first patched on boot. For returns, all returns are simply a jmp to __x86_return_thunk so patch that in instead. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 7 +++ arch/x86/kernel/alternative.c | 76 ++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 24a4afbf163b..936e555c13ce 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -97,6 +97,13 @@ extern int alternatives_patched; =20 struct module; =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +extern void reset_retpolines(s32 *start, s32 *end, struct module *mod); +extern void reset_returns(s32 *start, s32 *end, struct module *mod); +extern void reset_alternatives(struct alt_instr *start, struct alt_instr *= end, + struct module *mod); +#endif + struct alt_site { u8 *pbytes; u8 len; diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 17b93763d1be..b67116ae883c 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -3292,3 +3292,79 @@ void __ref smp_text_poke_single(void *addr, const vo= id *opcode, size_t len, cons smp_text_poke_batch_add(addr, opcode, len, emulate); smp_text_poke_batch_finish(); } + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void reset_retpolines(s32 *start, s32 *end, struct module *mod) +{ + s32 *s; + u32 idx =3D 0; + struct retpoline_site *sites; + + if (!mod) + sites =3D retpoline_sites; + else + sites =3D mod->arch.retpoline_sites; + + if (WARN_ON(!sites)) + return; + + for (s =3D start; s < end; s++, idx++) { + void *addr =3D (void *)s + *s; + + if (!should_patch(addr, mod)) + continue; + /* + * This indirect might have been removed due to a static call + * transform. If so, ignore it. + */ + if (*(u8 *)addr =3D=3D INT3_INSN_OPCODE) + continue; + + if (sites[idx].len) + text_poke_early(addr, sites[idx].bytes, sites[idx].len); + } +} + +void reset_returns(s32 *start, s32 *end, struct module *mod) +{ + s32 *s; + + for (s =3D start; s < end; s++) { + void *addr =3D (void *)s + *s; + u8 bytes[JMP32_INSN_SIZE]; + + if (!should_patch(addr, mod)) + continue; + + /* Generate jmp __x86_return_thunk */ + __text_gen_insn(bytes, JMP32_INSN_OPCODE, addr, + &__x86_return_thunk, JMP32_INSN_SIZE); + text_poke_early(addr, bytes, JMP32_INSN_SIZE); + } +} + +void reset_alternatives(struct alt_instr *start, struct alt_instr *end, st= ruct module *mod) +{ + struct alt_instr *s; + u32 idx =3D 0; + struct alt_site *sites; + + if (!mod) + sites =3D alt_sites; + else + sites =3D mod->arch.alt_sites; + + if (WARN_ON(!sites)) + return; + + for (s =3D start; s < end; s++, idx++) { + u8 *addr =3D instr_va(s); + + if (!should_patch(addr, mod)) + continue; + + if (sites[idx].len) + text_poke_early(addr, sites[idx].pbytes, sites[idx].len); + } +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011039.outbound.protection.outlook.com [52.101.52.39]) (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 C6163309DC5 for ; Mon, 13 Oct 2025 14:36:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366179; cv=fail; b=QSuYc2oQuKhLuCVx1ho54tYtmopLtGSm2/8MKooE1Rpjz+/Z8QiDDdALCkB+uqqplS7DsHIHqKAk90o4y0IqyinC5kKNha7rjYo/Tq22st1qt4bIf0K2Xv60S1U1aByM802RKoUl2dAX+ft57A25aWGhO1ezNglmtxGHTgnYML0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366179; c=relaxed/simple; bh=O8zw6uMn0XV15DZRXNG1nrZKJpl/fqpThNwOKjrXtz8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VfngIG4ZaHCKOOT67Or8x4J9Fkrp/REGzuHBuAann9CqoVDsyv9AtMoCMHGdIHjmzK5H4osrWOi6C8xnKfm7/UXydYrdMSfHaJlf4lZZVKzlTGlLeU014Thgp2as7XcQSv8ffx893I+F8VoXqpxixIxbeUXSu/lu7opK5lJ1HrE= 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=Wsi5vG2S; arc=fail smtp.client-ip=52.101.52.39 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="Wsi5vG2S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DY3G+1brsGnFgSNhphvrP5+OqZf7GPR9iFPmROisbn8ekMA+dkjRfucSdtG8JDzefljcsT+zTP+luydT3xDcOU/uqSqWmPjLl2WSYejB1YwJR8shn2BMb/59Y6AfmcwMQpH2mnCduBIIbOplkQLRa9QfO4p9tRmImQhJdRnxEKRZCXfCK7FpmGsLiv9N2ANFNSJdTMiLghEhL9SQdwrsrCI0s3BFnqb6KF0YZdThRd9VsRU4L1qRMW7IyLtRjWI+ibckjVqRoWr8QnazQRdEMH/9xmzrQEWYL04K7flv/NhIk7lDQpWgjWMPR8LU0sW1nB61r9HaxwhEiDJTdtv3Vg== 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=bh7CYcaZaDRKWBEGn1WhNTaTlTAnqYPZEHVCLexKGXc=; b=JBUdQLuW7Ao2S3ZGcygSezHMTcro3Z3Sg6clU1a5FxG/5uLmSwQePaVG2L7/LrnPcMQF2754RF5Ie4aKtaGIx5SDzq5+8C9Gadvn4ugynXbktV8hTiRm7MG1FuJdS6T3utN7lJJoWsmBqa6gzbT2fii21IAzYe/LaYXcs4kGS+hWwcVYIicRatggMc7S148fQ6Mdmf/J1u4FaSrl57QS970igD2CNIKS/OvV3JGFyyXJa/gvKzjra35JXewvzIKnz1XL4rJrB3ZtLi8nYMj3UGBHgciAxglQzMKbIEmbaU2IJAqeI5BXrDGXrfONtb3jknT+U6p3iB5W/I4x8HKQwA== 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=bh7CYcaZaDRKWBEGn1WhNTaTlTAnqYPZEHVCLexKGXc=; b=Wsi5vG2SezodwhNzk4hlVBIT+iAUB5yf+W31HxwfT0dDzijy0IMdXiHxpya45NUrsdZup6f9TuVRqNEAWJcm6BEXbmY9r8sdI19Aqbpt0A3o8oFcqVNEXxmsdh799CpiE4Cpkbv/FgOmWuAEfPnkWI+bXt+motexj7aIsRbZ5ow= Received: from MW4PR04CA0074.namprd04.prod.outlook.com (2603:10b6:303:6b::19) by MN0PR12MB5906.namprd12.prod.outlook.com (2603:10b6:208:37a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:14 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::66) by MW4PR04CA0074.outlook.office365.com (2603:10b6:303:6b::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:13 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:46 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 38/56] x86/callthunks: Reset callthunks Date: Mon, 13 Oct 2025 09:34:26 -0500 Message-ID: <20251013143444.3999-39-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|MN0PR12MB5906:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a8d8596-5282-4575-0671-08de0a65dc7d 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?NyC6fTQzQJcHQfQrZzoZ7QO/mCOAEVvCA1tJ6ySlNkXqRDo9Sv5dwcYxjmpt?= =?us-ascii?Q?A9wEgX36i1PrkMk3mEsub50Ss76EmQOaFOVFI6FVhTCmy3F6sZEqetWQUslD?= =?us-ascii?Q?ykH/oxNK+6bOs1gDv8ST4CrkINHL1pYmoXuRzLHoQvQHKpnSBlEVAI2TjbN0?= =?us-ascii?Q?mlLxgHdecRD3uCMbha9jUnhX99CzFtGZeh2azqDD5sv9uVv6WDEe4z9vrhhA?= =?us-ascii?Q?oAogIcgRC0+u4S/H8dPboLzqgIUr45mWruIgHGbUKiC1GF1ydm3eYJU1mNsp?= =?us-ascii?Q?vUlSZ6e7OzZGWmK/6RkcFyX6LOGUp/+cxnyhTTerhtL5pYQz1SN6eTAy7/AX?= =?us-ascii?Q?aa5uirTtwBVvkoNekVud81uJgQnrQWgsSNAezp4v6Iarc6ueFIjKqyvyr0yr?= =?us-ascii?Q?wyolRiIt8nKFDtzf30Km8pMVYKPlBxOMhWXiAluuflDpoi3zTIIl29mN4MLF?= =?us-ascii?Q?L4PAN4ZfAoIIz00iad7JWi4TCWP5OBB6Ep3COkg1mIY1uE261dQQer2N2xBH?= =?us-ascii?Q?krwH24x4QLGdI1TWQm3qg6Z4AzzAjW6UYtC7xtVPrFlqbLmb8Sg4d1Hb7IOQ?= =?us-ascii?Q?dBcfuiaZbiFrSotJelq2VKgLDHm0zlL6Giwa+p4e8wLpO6Ys6l+ekLGNr6B+?= =?us-ascii?Q?8/sb9UGh88Z7RYO0OS+dSxOhumxQhx/cHv+HqWn6pIwrIwZvBvIC9b6JhuN6?= =?us-ascii?Q?bNu5961p9NDCMsYBbmKOmatkevFOnASokwRJElXInDGKugl4UtU5lcwFLdqG?= =?us-ascii?Q?ooK0fywFH80gXFuvSCiHvKq/eISZwhqUn76d3bTofyvkCvALH7Me5LP7TjNd?= =?us-ascii?Q?u+gbK5gK37BZ2CWZH+JTohe3gaxg7iIYsnW5BOieYbI2uDJGcceQX2ikG/F1?= =?us-ascii?Q?Wel+9CdSm5eA3gYFjP/4o1wxcXRijUCqfCv35sJsNBDd1nlCD4zb0H+Py1OW?= =?us-ascii?Q?ngoiHmBAdGKxt/KKZDGOw1z2PPIGdiSHwi4q7zksLet/c95pbkEQswCrEk2n?= =?us-ascii?Q?Ur7SbxarASXNke5U37+8nrMXCov6hy6YHTLSfp7H2U2Zrg1swbxoBSzBvsVD?= =?us-ascii?Q?GxCyzgWABcwDJwFWBejxX0ZcccfH/lGZoXgfUOH5cpeD7Cec5txkxHJfcvQg?= =?us-ascii?Q?qyzflr7GLy5OWBaxuvBW52Vtm1JKdF2MF6HWvcpcBb46vTtBJn3ryIgVvtpY?= =?us-ascii?Q?S4j8P6dayBJIZI6GJaLBSVKy/+stBIBmDXlkr/FK30FAT5u/K5FERMAfqGju?= =?us-ascii?Q?gH3F7whjWRCscH9nfagdgHIeo3G2tJkpXtv0znzEavVMjjTzl21hDUXdjB0U?= =?us-ascii?Q?+0tYCS2qVgUR56hPD8zFi2NWLfx01RuoIhM17QJnWyrzqVh9NROktA7sL7cl?= =?us-ascii?Q?7D7DJoP7X7F4E+0yf/y5FQoTJrPayboOzFMkCk+LCDOo53CFbFyOXwt/Txvm?= =?us-ascii?Q?XR/2KmPgIhWXUggrQ6lZWaBZIDqnn4c9fIQJeJh7dYY2+9cIGCna45OvqDJo?= =?us-ascii?Q?3rH0XYFSdbz9N87Iz06qN9oyC04VVAukLBlq6WHz+R6Jx9KsS5og7dp1tU5B?= =?us-ascii?Q?IUO+MG0bHfPAoJ9UiHY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:13.8939 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a8d8596-5282-4575-0671-08de0a65dc7d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5906 Content-Type: text/plain; charset="utf-8" Define functions to restore call sites back to their original bytes. This is done by checking if each annotated call is pointing to the expected thunk and if so, adjusting the call target to point back at the original destination. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 7 +++ arch/x86/include/asm/module.h | 1 + arch/x86/kernel/callthunks.c | 73 ++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 936e555c13ce..00e60195d768 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -133,6 +133,10 @@ extern void callthunks_patch_module_calls(struct callt= hunk_sites *sites, struct module *mod); extern void *callthunks_translate_call_dest(void *dest); extern int x86_call_depth_emit_accounting(u8 **pprog, void *func, void *ip= ); +#ifdef CONFIG_DYNAMIC_MITIGATIONS +extern void reset_builtin_callthunks(void); +extern void reset_module_callthunks(struct callthunk_sites *cs, struct mod= ule *mod); +#endif #else static __always_inline void callthunks_patch_builtin_calls(void) {} static __always_inline void @@ -147,6 +151,9 @@ static __always_inline int x86_call_depth_emit_accounti= ng(u8 **pprog, { return 0; } +static __always_inline void reset_builtin_callthunks(void) {} +static __always_inline void reset_module_callthunks(struct callthunk_sites= *cs, + struct module *mod) {} #endif =20 #ifdef CONFIG_MITIGATION_ITS diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h index d0c39b921408..58d7f1017a14 100644 --- a/arch/x86/include/asm/module.h +++ b/arch/x86/include/asm/module.h @@ -23,6 +23,7 @@ struct mod_arch_specific { struct alt_site *alt_sites; struct retpoline_site *retpoline_sites; int num_retpoline_sites; + bool callthunks_initialized; #endif }; =20 diff --git a/arch/x86/kernel/callthunks.c b/arch/x86/kernel/callthunks.c index 758e655f36a8..3e6f00e19814 100644 --- a/arch/x86/kernel/callthunks.c +++ b/arch/x86/kernel/callthunks.c @@ -336,6 +336,10 @@ void noinline callthunks_patch_module_calls(struct cal= lthunk_sites *cs, mutex_lock(&text_mutex); callthunks_setup(cs, &ct); mutex_unlock(&text_mutex); + +#ifdef CONFIG_DYNAMIC_MITIGATIONS + mod->arch.callthunks_initialized =3D true; +#endif } #endif /* CONFIG_MODULES */ =20 @@ -381,3 +385,72 @@ static int __init callthunks_debugfs_init(void) } __initcall(callthunks_debugfs_init); #endif + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void reset_call_sites(s32 *start, s32 *end, const struct core_text = *ct) +{ + s32 *s; + + for (s =3D start; s < end; s++) { + void *dest; + u8 bytes[8]; + u8 insn_buff[MAX_PATCH_LEN]; + void *addr =3D (void *)s + *s; + + if (!within_coretext(ct, addr)) + continue; + + dest =3D call_get_dest(addr); + if (!dest || WARN_ON_ONCE(IS_ERR(dest))) + continue; + + memcpy(insn_buff, skl_call_thunk_template, SKL_TMPL_SIZE); + text_poke_apply_relocation(insn_buff, dest, SKL_TMPL_SIZE, + skl_call_thunk_template, SKL_TMPL_SIZE); + /* Check for the thunk */ + if (bcmp(dest, insn_buff, SKL_TMPL_SIZE)) + continue; + + /* Set new destination to be after the thunk */ + dest +=3D SKL_TMPL_SIZE; + __text_gen_insn(bytes, CALL_INSN_OPCODE, addr, dest, CALL_INSN_SIZE); + text_poke_early(addr, bytes, CALL_INSN_SIZE); + } +} + +static void callthunks_reset(struct callthunk_sites *cs, const struct core= _text *ct) +{ + prdbg("Resetting call sites %s\n", ct->name); + reset_call_sites(cs->call_start, cs->call_end, ct); + prdbg("Resetting call sites done %s\n", ct->name); +} + +void reset_builtin_callthunks(void) +{ + struct callthunk_sites cs =3D { + .call_start =3D __call_sites, + .call_end =3D __call_sites_end, + }; + + if (!thunks_initialized) + return; + + callthunks_reset(&cs, &builtin_coretext); + thunks_initialized =3D false; +} + +void reset_module_callthunks(struct callthunk_sites *cs, struct module *mo= d) +{ + struct core_text ct =3D { + .base =3D (unsigned long)mod->mem[MOD_TEXT].base, + .end =3D (unsigned long)mod->mem[MOD_TEXT].base + mod->mem[MOD_TEXT].si= ze, + .name =3D mod->name, + }; + + if (!mod->arch.callthunks_initialized) + return; + + callthunks_reset(cs, &ct); + mod->arch.callthunks_initialized =3D false; +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011040.outbound.protection.outlook.com [40.93.194.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 3670F309EE8 for ; Mon, 13 Oct 2025 14:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366181; cv=fail; b=SuE4V2piuBH/nHXfXnJCTvN+tYFl48PoIVEJRk485jD6nNeLgAwpRWTAhiVnPBqZuFisKzBtqc9jMPdfN3oYcRxMv0yF7FEBvaNcrX5ax5pqOvNCSNH/EpInhu9Fn2RxOxuUBhxm/Q63saNM8tWW6aI5Gxf8uLq1i0gZqaycWPc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366181; c=relaxed/simple; bh=eb/AkQOOVU7N9BBw2hoNmNgm6b1bj8UzkhTTC2O4sV0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=U6wyXYTm2kycHGF4PmCWZvfNzFnJ/rGfjr0+erjtIzhf5iwJLfEBf8PEpxt5+DeVZRYTjYwu1MEPETGw+knxUcfB9iYLmQTJ/ykzZAfPIK3CaVkwDiKBZiPn4+KXMwqk49HwcIJh98rKWsikh9kzOIxlmjlWCYDrNMgXfAGuFfM= 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=sRG9/sat; arc=fail smtp.client-ip=40.93.194.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="sRG9/sat" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vz0OlnSDUd4qXyzV2m7isbb450d5TPuAC8dQ/AxFqigO4ZptuV8p4UoPDFooud/vcBVVs2YdMJtJ6mt1OVUElczYMw5z3tofBkLfxunQI3baH4jLlZwpJ380yC/vkuEGgWQVM+ZmonJ54LnLsvayeglsM6iluqeugmfJ5L/owstNCQEpOBxlU4DF8e3cttHNhqibBNTJOyZM3aN9TyTuqNFL4mW15jeQBC80XL8TGF2uYmBQG/MKZU1FWCvqQGn8JSrOT9XzyAeRGUIb165xzulhiVI10FNlChyQEoMWAwYsPwvWHgErKmhDU6oGpNJL3asFktDVi/nH5KXLwBGjdw== 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=KPy8hxQB9cDhLAr5qmwiob7XhkPkJue/DpywtPPJGos=; b=iiJN1a+KRL4iLxIBUZvsKtpwi0yT7Ys3TVCjIT1MeCyhnXUgiOlwpMOHg9D9ngqg7TjfBlN2LguTDCQt7kyuJ0G29nx5tx/Sbasg4TB16XdEL3HUdXurpGphp1qQ5P8bco2nKnD1ff+fyYSfK1pL+Lg84wPUi/v81nixc7rpQDpQx6JTtY1Hk1+V4XKa2Kc4i7mfsSN9/GbtUbdJj7EK7+eRBIwiEdBwYdzHLxdRlWf0hphOq7jRlidB4t5BRi0b/B+hhKB0+DTSI10+appUN1or5iy4SftsZgO5+nuOdYE/isInENOet3LyNH27zkAVzNIBROr3S5+wFcgczS3HkQ== 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=KPy8hxQB9cDhLAr5qmwiob7XhkPkJue/DpywtPPJGos=; b=sRG9/sat8JIM0FlxYpJtl9gtBBBRMFSW4Ux96bcs4aAJsYqQaS/tsQk3UEOC080MItkxFM4AWpjmVa46Jb3CS69zdGlv5suAhtrySnpjlnhbQ49du04LV/Lm/Ir1oHNwFf/Ax32f6l8hH8SMW4qRHwUASuKGDoCSoHGpmz8pF/Y= Received: from BYAPR07CA0045.namprd07.prod.outlook.com (2603:10b6:a03:60::22) by CH3PR12MB7643.namprd12.prod.outlook.com (2603:10b6:610:152::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:15 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::81) by BYAPR07CA0045.outlook.office365.com (2603:10b6:a03:60::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:15 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:47 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 39/56] x86/sync_core: Add sync_core_nmi_safe() Date: Mon, 13 Oct 2025 09:34:27 -0500 Message-ID: <20251013143444.3999-40-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|CH3PR12MB7643:EE_ X-MS-Office365-Filtering-Correlation-Id: 64865510-9262-4dff-7f1e-08de0a65dd27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YSqI+/RZrmm9+az+Kv9CkApr2A87u9bbu/Oeu7Q5xUo2zD0jFhKprPpH+1uM?= =?us-ascii?Q?lbQJVNLFRcemlgZgvI2POsqDnGtcF4SRDX4emyJABtfBxJlmaR1w6k5CCsLm?= =?us-ascii?Q?AUSCTB48pGnuOn+uCcJv7GwDZ6RCcCuPhQHCahN8iOmDKqVcAh2BZi6rFk0L?= =?us-ascii?Q?n2Ssw+aIkkh9FQticvJCAYUTk7ho9swkhvDrCBSm/D6IDRLEYIE0LVUmnylf?= =?us-ascii?Q?66jdPXgzki6JxgewkAprCfnYsBK+GrWFGvzu8HtxUXKPEuVuMya1h7gG23NQ?= =?us-ascii?Q?MnonyNqKDC2VWqSKB2a0WuqTLa1dbLwsF3lcn6s7ZX2+eCDSm1VCE1FvfqzT?= =?us-ascii?Q?9tE7AZmYwYybKNadpjqivGieAxjwRqWOwOULfzkO0R7Zo/8rBLHNHYxZx/8P?= =?us-ascii?Q?I5B9yJGiEs9mAi8UGZsf3N1oN3uZtCjhAWq/RPNx9E3+KXheDTS030341KUw?= =?us-ascii?Q?469MCefW5hDIbs8vmhT2JOlhubLMzkow9zZMeuN5n/peaOOzvkbXsa4feOhA?= =?us-ascii?Q?zU4u8ddtT/m7NUD1L57Mq9SAOzco1c5QkcFYnkEO/GnYzvvdNFLTJMbP+X8K?= =?us-ascii?Q?EPPQC0VFffhrhYXtMeHVo3e3inDVaGZlvL6NmLxAUmx8eHsI2LsSuGDbmqWx?= =?us-ascii?Q?oPYBp/WEEAa/iCtHxRAxgnNYTl2f01klIuzny4Etnr2iJqV79U7svhQmQxvd?= =?us-ascii?Q?j7NqzbHnBkSuxycz3fS4pKuM5jLdolfnkZbjBponytjmprnUevEryZEtG4Yk?= =?us-ascii?Q?hqcjzLgxxX1FKLfJWwduXi15z0+gkusuqdJjzHV7jl+e8frDLn700RbCBMQq?= =?us-ascii?Q?O4Svc2/e6eBUdmXaVFNGFycRnvCbmJ5VyVQp6ptJRzrubiS5MeIfiqYBWTXL?= =?us-ascii?Q?fvKyS1LM8MnKx3joBxT86Ub7halQwXCsUysj3Jnub0rnOwWnSCQtqoKqugkE?= =?us-ascii?Q?ktkBn0H76sJc5PDdCYofjSwGK0n/ANlaqv7vvwCSoxhzi6TZYQuRA3AVZMQx?= =?us-ascii?Q?QLNDQ7Uvm19xXstuXm2CIJxwrZ5IYcV4FR8TjpHWIrMUZbGJHopgZz/E7gq+?= =?us-ascii?Q?BxcErOlxvd7kigCkjFSzsJgRGJUIKg70ekmEqoJzr7lc4dyWVbKXOTKuWSeo?= =?us-ascii?Q?wvDuDSEHnDRimndl7KTGOa1QK0zV7fzD5e6Zdrlf8Idt49kLroSFjl6DS8Ij?= =?us-ascii?Q?tXt1Y9G3vzS65N9LhIRwgffRBVMNPe+IDQEo9ZxcUfmUWyQpbHVl8JbjziHd?= =?us-ascii?Q?ojddILLJAeKDVYgsbWJA1nPzdk7IDdvk2/3y6ZUikU2U1EhzOEhF50tImUhw?= =?us-ascii?Q?NmhxlH2CsTumZJJOSG61iweD4po4jfUgyyfYwXTOp+LVkCUBEHdQ3vYr6bo2?= =?us-ascii?Q?JEcpgnzGulKbpD7GijwTRupcjxlY7YsCcBdF0t1we+IjETeuHTqJ2aBJMBpS?= =?us-ascii?Q?NcbHbsn9N6qoOV7JvY2vWIH5H924BQYsnyuX6DZ7fomR/iHS1su/pHBrLYY8?= =?us-ascii?Q?qY4cIR7ti9zvrd3ESn7jbPeNofi5aNSZfqUjDtsNOmfsLB2mnvZs5ygq/ANW?= =?us-ascii?Q?C9XHaCywAGEj7nxFqDU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:15.0119 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 64865510-9262-4dff-7f1e-08de0a65dd27 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7643 Content-Type: text/plain; charset="utf-8" As noted in the existing comment, sync_core() is not NMI-safe due to the use of IRET. sync_core_nmi_safe() uses MOV-CR2 which can be safely used in NMI context. This is needed when modifying kernel code within an NMI handler. IRET was initially chosen because it works even under environments like Xen PV. But Xen PV will not support CONFIG_DYNAMIC_MITIGATIONS and the need for NMI-based kernel patching. Signed-off-by: David Kaplan --- arch/x86/include/asm/sync_core.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/x86/include/asm/sync_core.h b/arch/x86/include/asm/sync_c= ore.h index 96bda43538ee..f4e2f868d71a 100644 --- a/arch/x86/include/asm/sync_core.h +++ b/arch/x86/include/asm/sync_core.h @@ -88,6 +88,20 @@ static __always_inline void sync_core(void) iret_to_self(); } =20 +/* + * NMI safe version of sync_core() + * + * sync_core() may do iret_to_self() which will unmask NMI. + * sync_core_nmi_safe() uses MOV-to-CR2 and is safe to use in NMI context. + * + * As noted in the comments above, this sequence may fault at CPL3 (i.e. X= en + * PV). Therefore it should only be used if outside of those environments. + */ +static inline void sync_core_nmi_safe(void) +{ + native_read_cr2(); +} + /* * Ensure that a core serializing instruction is issued before returning * to user-mode. x86 implements return to user-space through sysexit, --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012011.outbound.protection.outlook.com [40.93.195.11]) (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 587AB309DB0 for ; Mon, 13 Oct 2025 14:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366180; cv=fail; b=d65QVdl8PoKJ/qmevuyp4qcKrDVgNj0JMlBBh3QyfzBF2zPpdWnQX6oaOAiOE8br9zdet7q6mrPgT0l+mD/sfSwHxud4FV8E7dC58mZsvyjpc0MLt4YClnkbfnsRcFlZpmTPaHTvz0DFrsBNowb0+Tz1u+XinkUsSKFCciGUtCI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366180; c=relaxed/simple; bh=lYTgf73XlbjBrrO49F6YeAXkxNrCVkLHakzGVmI5/xs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=acxPuOmNBjPxPsv9x9VUWGqJ8fksxI7A483EctDNCFY/IhRzNyPXVV5mB83pE9F5DOz2QN+iZcHIhxEvtx83xiTHvlBUgQp1qHLwqOP8LoPIS+15Ofa7pEk8UGBQJN2IUpfwA5lQqV0vjbmbuNavnUVpOWlz3Ef4EJghmdPV1y0= 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=n6SvTN+4; arc=fail smtp.client-ip=40.93.195.11 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="n6SvTN+4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d9UY3xQrd82dXYdSFolheZj6HjbeK/eh3L+T2p6wtdcpDUOaMGsGdT9ASo31Njp/3748pB33gsVQoYyDMiMeM+1sZLvQbUJ5DZH9p+9Aabbj8buSyjKd2Ymz3h9nNgEJ3uP6oT9rreymZNxbjc8lpoSGPU5CVSN753OFjjAXuTWbV4/uNDTwXJT935ivPYNkQgyt/WavW7be5mwOUqZSSpYi+Ut5KHEVHGSXl3QOpDJNlC7UDzOv9C58YCqTFRmRgVZfueaOUPnNqzAUoxzBHgvxO5V7PYnoqksPkm/rm9eJwBa3CjGoeJwLK3H4uQRlDK6/kuctvpt4M+uJlPUZ4w== 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=JNwbeXHhiQdDD553vkAdG1r8VNb4QKRnPXyqfciNwvU=; b=I+3UqQ8NFgNEJahoarm5vn5Yc+4VTL6LaWgby/8M13Ag/EAJzf8C2NP01YU6Z3nEjFlo7kkihGCYHb2QqImdXl2Xe3jc/LierxlYwMgQJtx0KmOYYGk66SNaD34hI8CUobPEnLxQ7RL5jaYkdsicmC8BpX+Iknq+j5XzJ6N/4K9Fvd0SLzpKfyKPQpNDJJSlfawgIUPQthgX3kjzDHhJZt89zUtM1js2L3zJTuOj89xq7j5qJiLRD1wZR7yg+hF6eoILLT7ZCH92D9YCgp6npVQMVsaLUlTg9R2XBQkjTGxx3CbXaNjmQ3R8XTAJVb+yi78JifzozN1fx2LGEzRq1g== 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=JNwbeXHhiQdDD553vkAdG1r8VNb4QKRnPXyqfciNwvU=; b=n6SvTN+4Hm4tvmimPEsKRqJg3pUKqBZk0E8xDUjTm3aQLmG7UQ1xnF0RbMgzC+CkxQVCwZD/8qLtg4XmPojg5rR0g+X4nSh+R/fSoTDzJ0RzOIg3BmgkC3025g0CF0c5Lk8AzfBfkmKII0QxJOgeyPRCtuBfNuW0hkr0hisG1fs= Received: from MW4PR04CA0062.namprd04.prod.outlook.com (2603:10b6:303:6b::7) by DM4PR12MB5770.namprd12.prod.outlook.com (2603:10b6:8:61::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:16 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::db) by MW4PR04CA0062.outlook.office365.com (2603:10b6:303:6b::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:36:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:15 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:47 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 40/56] x86/alternative: Use sync_core_nmi_safe() Date: Mon, 13 Oct 2025 09:34:28 -0500 Message-ID: <20251013143444.3999-41-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|DM4PR12MB5770:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a79167d-bdbc-4a84-86a8-08de0a65dd7f 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?G1bkjK502JsFSLio6x40HYQZoo2mKo9kluy9wnKJGf2/YgXLOPv9TXYIyp9G?= =?us-ascii?Q?GlR2aMk9gRmhJ6fLsmFiMjVFa2sCx05Aj+RmmosQv0d3WCBkUh1P+eh153K6?= =?us-ascii?Q?HWWSAhPYUE32NLP9lkbQGb84J/TZ82v8hxxkfgiYdSXFeM5Cq+uyOzs2zsAb?= =?us-ascii?Q?gCSYglFcs0M8e3SqdhIfeSNqEskLatT8ayV22xyDqTW4RATgWySI4UvR19pq?= =?us-ascii?Q?o3scSDne+H6We8fckIrop/de9E813hoB7DzIFgM9rdCGjp1qrLjmoZXEsPVY?= =?us-ascii?Q?YYFMTIjd2sArMd8WZEvFNlmtsqL8R6RPAisOOD2tS1rqXLcRHYYXjIGgp1BY?= =?us-ascii?Q?xFXrznmwNliZdSXVwqsKnhJ5wvqvBJhTDDXYR4W9C1fy4E6Ozg1I7qxQpDei?= =?us-ascii?Q?Z0F4A1Cq0ZUL9hVhSZd4smDOCwE31G90tiMbZV1DJBP//0/1V+qbZHX8o+7o?= =?us-ascii?Q?kwnNi4WFjWqP4A08ByT5PM+yLOzc05wPm8LtrnBIVdpIh3MM6LFXG+EyU637?= =?us-ascii?Q?igSlr0cDCiXKq7qbEY1sv9pumMKolDN9VKPFHDvguZIKRlNXIBaz0W1R3zR/?= =?us-ascii?Q?wAOdITV4kEQAIrgBkcLzA48neoZt5WoQjKGlFaHBU/1gT9EJyITm8xM7nPNk?= =?us-ascii?Q?NzQp/z1eFLr76EIWE3/pA2JowaBh9wh8TANbA8xin9nhdSTABaNWN7z0HmZS?= =?us-ascii?Q?INkp5nK7Ef5yv0d2KP3LUoCA6Xe+C4qKQjZ2F3/YNA1/AuwVM0oUJ6o5VPd8?= =?us-ascii?Q?10c0W1rVrZAlkTxoF8R9XltRt8UZPO2arEIYAtMozPJ/sfnLKJSYmnPput3r?= =?us-ascii?Q?jLi3pB7zTjzwcQhcnzWf+Q0/rLpeowAG1RnFEsqiLnnMZE/ivcYvT+syJ2GN?= =?us-ascii?Q?L5My6inaTFRdNalqNy/5oyLwi32zm7VZGEaVBEctuJbPAw0QxejX1wf0v541?= =?us-ascii?Q?pSxP63uLB3UC8xei0Y1L28kDsVy18VQJuxtBXBYPDruztk/9f6kVNykQoRMT?= =?us-ascii?Q?FgQAVF6BoNTYdJRVEPxXFVudpz5qPmbRdk0Zzc5UtYUSqg+/PV8Cve9SCGRR?= =?us-ascii?Q?UWjwdMVzjk2nfraUIFh9hS4k/6gTNerVAXEJP8+VT3DEa+kej6wRS9/iNozW?= =?us-ascii?Q?OM++J5hgtwwaxDg7vGE3jwbVAH/l/iKkHMatXcwwXUuLAwwj+MYwBCiHL5pJ?= =?us-ascii?Q?iS1m1AN79tH6LjTwdBW40sP7aH99RE+mKLmpgYbURC37AxiGsWkPUJQaeexb?= =?us-ascii?Q?TEetfT0wIYAVe4SvKppO/3amkN1EW0w6BUAQZjWvQc5RPClaqhdbgCZQz78Z?= =?us-ascii?Q?lgLDH+O9PKgqDHEOREbAsPn0vpW50C8lfrQZ0OsxIw+buFZtLww+m/+h2QhM?= =?us-ascii?Q?DJTtQcY9p9RaIcRly/3vY2u/sKhf7k1YM8GFuX82AraQSeJ9VE76WYdiCf1q?= =?us-ascii?Q?JRNQ5zuVauaWETdg7dqKFdC8fNTYtPcKooiYCFGlDUOqb0RhthA/2gzkqt5z?= =?us-ascii?Q?EdBThvkXkxYcADz4X7zsRaHK/BkOZrSBXPvWEDhzKTdVbp8FrTwWW0vu5eII?= =?us-ascii?Q?agva0W4/bwwqd+uYVI4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:15.4700 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a79167d-bdbc-4a84-86a8-08de0a65dd7f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5770 Content-Type: text/plain; charset="utf-8" Re-patching is done under NMI context so the NMI-safe version of sync_core() must be used. Signed-off-by: David Kaplan --- arch/x86/kernel/alternative.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index b67116ae883c..2d48d750d4d9 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -2585,7 +2585,11 @@ void __init_or_module text_poke_early(void *addr, co= nst void *opcode, } else { local_irq_save(flags); memcpy(addr, opcode, len); - sync_core(); + /* Re-patching occurs in NMI context so we can't do IRET. */ + if (repatch_in_progress) + sync_core_nmi_safe(); + else + sync_core(); local_irq_restore(flags); =20 /* --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010020.outbound.protection.outlook.com [52.101.61.20]) (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 DDFE330E830 for ; Mon, 13 Oct 2025 14:36:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.20 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366182; cv=fail; b=YDVDgEZmfGdB5I+jFwPJpBy5lK2eoOIAj3riuNmTKQVY0ByCs6blzHLmp/+WLi/wMes19a+WPqlefd+Rjcf0IDsO5MkZ8/iPedY/1mX78mZCUPwh9myIAZsvce9yYqMawAYJb05zqtlxV+l9OzjdVKnB/U3+NbZaF3bfrRqInow= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366182; c=relaxed/simple; bh=cAs3UCgxhro9vPieVCPdrmM+9r8OOj2a+Kk6yb7PM8U=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LThMw4XIJUGLSDpAHq5vdby/2YLKu2Gqijy3i4zdDEoUqDqWrh+iTbwsvJdilgbkWqaiMEIbJ5M6LvtBVR1+m3z6DtplNcqjVGi020Q0a563Vl8389yPMU/7L6hn5pDzDmkQP1WVOYdUXzvXgApaalwnvwnSlvKyQwoF8PxRRgo= 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=ATzJl9zx; arc=fail smtp.client-ip=52.101.61.20 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="ATzJl9zx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wIS5CAxN2y6U2PGbEp1jJdQBiriFLKkBuGszSHIJPTOPa6b7fLmwgxdE7VmMvuThiXQfNUWqIBbHULkCxzIsnssaWNqv6PMsanp7mEJg3aHMzqusd9Obg057mEQdR04F5x0IVNxcl1MuyBIgxrSOv8tFeOY/gt4a19E4xlH2THs7TqZGGSt7gNp7s6B3etrUY8M3H84Uw2TGboEJrcO/6WGXdTUZ8F4vZJtDC8+ckxRYX5q/WbN7O+LUyiQUOLc70RpuUq09KOCsRkmLc9eQ5SV6lmSAgU3SX+RBkB8tnW0hfITtXCTjMRLt/sCJOGLh8nh1qUpBDqrQ5/toC60kWw== 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=TIRZbh4cGi1E1o+0gRfF+1V0MlqCIuN1JST5gGKr9A0=; b=goPeETr72L0IVYcqkpZ8lZBBP8YMELtQTJ/HcrmQm5juSLhA5EAR6b0CbsRwFM/k5PqXr5I9za2h2JeCLrH8ocsj4HBC1JjtRAv3EtMVhMvic8jp/rlUCvC+AiDrent99oCk8Y8Zl2zPIusPHzV65+o6e4vr8vBRGYeb0rNkLQZ+XB3gYflgvSmevPbnzMJkqvutqf2Pvg4j/i1PpSaYsaNcp2Qw9Kgm4K1VBvSdpprPPPjrK6HGFs8waVocsS2RARQ7lDUfLvyoXQVZsb5zj7KQec+TZK4hGrt0bYLySDACCuKerPIZiaOsW64/MlklLvglLBzeqO5Z333i2nhi1g== 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=TIRZbh4cGi1E1o+0gRfF+1V0MlqCIuN1JST5gGKr9A0=; b=ATzJl9zxh/zau583kcv7YGfFkS1J2efnUoJav3Vp+3ZbXCkrX7CqRoMtY9CfEI2oOw/czOkLpHtAGBJjv9RRmgtavE0gPOJE2gvesbpvIERTzCtKVBsXNAS2rktk5YzvZ6X8IBloJiP6jJsgqmJbu/Pa28UkzJvhTBroxJ3I35c= Received: from BYAPR07CA0047.namprd07.prod.outlook.com (2603:10b6:a03:60::24) by DM4PR12MB6376.namprd12.prod.outlook.com (2603:10b6:8:a0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:16 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::e8) by BYAPR07CA0047.outlook.office365.com (2603:10b6:a03:60::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:15 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:48 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 41/56] static_call: Add update_all_static_calls() Date: Mon, 13 Oct 2025 09:34:29 -0500 Message-ID: <20251013143444.3999-42-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|DM4PR12MB6376:EE_ X-MS-Office365-Filtering-Correlation-Id: d87d20b8-addb-48f2-cfe6-08de0a65dda6 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?edWbtI7CsN79aB21I4SGzzYPBwPP+oKW8ffvE9KolSNdTf1GpUwgbGQ2SALB?= =?us-ascii?Q?Pkc0a+Z+hpooE2EmnGlZpYkK20cfSg9ZMH2xtNMn4XPYfUDansRKewLztigk?= =?us-ascii?Q?EuF0vFXxn2R8MPqCcnvclpB9k9cJJB8DD3AEZds9pUdoyXN9sUsLSbORt9hv?= =?us-ascii?Q?gtkXXCjocbDBHn/ijDFoRF5I7IUnrQZKlAXdYdXgYEuaNMQA8bGlCoaL4bxU?= =?us-ascii?Q?yEnZv7f2zrfBbzts3HBhmz0XcIWluk/l+7rVVJcoqED8yuq3DI5Z549V9Twv?= =?us-ascii?Q?nWKX+VBZ0pf5BtmnxQ670BtOsa0CggBlUSyfnUziYADGONiAP9DxOuv+Uw1V?= =?us-ascii?Q?2XWguKzOfFgD15J2uH6MN480fI6nggRKx9z/iUiw+N+NyvMzWedtq3FZFQdV?= =?us-ascii?Q?Z5grUSZnDbwwdn/BDKGYJxp+9NCt2ddqk+wZsKZ2sTul/bSpKLU/dU/Sy5Hv?= =?us-ascii?Q?RZxB8sv7xh2GpGD9d1SUxemQ+kNMsXrenxzI9VPmldBxbPey3GiPwJVVTz10?= =?us-ascii?Q?BJHa+9Q3Sr1KM0Q6jSRYt45DMy9gWBUWrkk+FB/iHO664rBr7Zm5KFg48Qhl?= =?us-ascii?Q?XiTFnLTlFvoFLXNxa/i4QJKTpuEK+1gwVs0T+u1zkj+4nrQD2uYp8Ya5zlNA?= =?us-ascii?Q?0TA++uWl7wM03ZvWx7z77DgTf5SLg6yNaqzMIoek1cyPBg6fDleszg1Tooxi?= =?us-ascii?Q?B6mdzab1UYktskd1rDdw5PrTcv+hUG67QrL3eeqwq7XrxTd1Jem46ZJ5CinY?= =?us-ascii?Q?GO7ET1x12WL1nu3fs65t1QTWNGVtGuaY96wqVfmUVe/dYoSmTlEodJvbmaqf?= =?us-ascii?Q?euWPrb92W4PQwZN5r6DLzHe7mGeFGlj0KJzzA09dWY/T90pCVZLKP9xdMfMD?= =?us-ascii?Q?2P0hTKd2nz66z9H5GxNmigY6x2kfwk0biwkMRDGo/ba0NZ1nv2Qf1u+gwtUZ?= =?us-ascii?Q?PDjaMxNTrPWParodsxDHuBiur8SsoACRH748Yh0o6rGejfkSiwEjKl7B5L73?= =?us-ascii?Q?C7KbrasHjlvlEipE1ej26fubv1sH1NqMJGpt749oDwjdGDgGVTt5gYNh0ne0?= =?us-ascii?Q?LATS3FZb58BDJdXbaVCL0p38LDJm58hJXWA4tBiBKg6GFOoEhzm+BestY/A1?= =?us-ascii?Q?IbE0sOo5DXg1ibIeDx7LNlpMMKMZV40gq/uTjAYiu2j2H8eSQyEIozx5sleJ?= =?us-ascii?Q?2gUmlt1EH8wQuAUe7luMJkix3t9965GLHoDBFEo8YUsPcJfBDJup0m1b+d39?= =?us-ascii?Q?0HSOvgwn5NwRWk5WHESkCMqibDPxs9kvy7XsRLRmI4FLntUqSeLGQlBK1lHZ?= =?us-ascii?Q?WvRHMnhJMOtB7bd3BLq1/4oQ1B3nnhFg+6SsWXGSOl/DJkJEg4byeiuSV6Fw?= =?us-ascii?Q?fsl9c9M13EH4l/qMJl/xMnATrAcBCNx8zvtBDUfLcpf+3HnbNIP+MnmX58Mb?= =?us-ascii?Q?QyppyctR5Wr8uCHq1/02ST4lcq6mNlyL3agF7mj44WIic3nkGouywubmbHU3?= =?us-ascii?Q?0GmXGJHa06wxqcvBGNzZ697EdDH1xqqiPE12Ztm+yIQBGoUZ1/1n8OMGFxbk?= =?us-ascii?Q?rtO/BOcD1d5Zo3C00nk=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:15.8442 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d87d20b8-addb-48f2-cfe6-08de0a65dda6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6376 Content-Type: text/plain; charset="utf-8" The update_all_static_calls() function re-scans all static call sites and re-patches them. This is used during re-patching. Signed-off-by: David Kaplan --- arch/x86/kernel/static_call.c | 3 ++- include/linux/static_call.h | 2 ++ kernel/static_call_inline.c | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/static_call.c b/arch/x86/kernel/static_call.c index 378c388d1b31..2d16d69b17d0 100644 --- a/arch/x86/kernel/static_call.c +++ b/arch/x86/kernel/static_call.c @@ -105,7 +105,8 @@ static void __ref __static_call_transform(void *insn, e= num insn_type type, if (memcmp(insn, code, size) =3D=3D 0) return; =20 - if (system_state =3D=3D SYSTEM_BOOTING || modinit) + /* alternatives_patched is false if we are doing dynamic re-patching. */ + if (system_state =3D=3D SYSTEM_BOOTING || modinit || !alternatives_patche= d) return text_poke_early(insn, code, size); =20 smp_text_poke_single(insn, code, size, emulate); diff --git a/include/linux/static_call.h b/include/linux/static_call.h index 78a77a4ae0ea..cc5f28a04539 100644 --- a/include/linux/static_call.h +++ b/include/linux/static_call.h @@ -181,6 +181,8 @@ struct static_call_tramp_key { extern void __static_call_update(struct static_call_key *key, void *tramp,= void *func); extern int static_call_mod_init(struct module *mod); extern int static_call_text_reserved(void *start, void *end); +extern void update_all_static_calls(struct static_call_site *start, + struct static_call_site *stop, struct module *mod); =20 extern long __static_call_return0(void); =20 diff --git a/kernel/static_call_inline.c b/kernel/static_call_inline.c index 269683d41aa9..504b69496711 100644 --- a/kernel/static_call_inline.c +++ b/kernel/static_call_inline.c @@ -9,6 +9,7 @@ #include #include #include +#include =20 extern struct static_call_site __start_static_call_sites[], __stop_static_call_sites[]; @@ -492,6 +493,27 @@ int static_call_text_reserved(void *start, void *end) return __static_call_mod_text_reserved(start, end); } =20 +void update_all_static_calls(struct static_call_site *start, + struct static_call_site *stop, + struct module *mod) +{ + struct static_call_site *site; + struct static_call_key *key; + + for (site =3D start; site < stop; site++) { + void *site_addr =3D static_call_addr(site); + + /* All init code is gone when this function is called. */ + if (is_kernel_text((u64) site_addr) || + (mod && + within_module_mem_type((u64) site_addr, mod, MOD_TEXT))) { + key =3D static_call_key(site); + arch_static_call_transform(site_addr, NULL, key->func, + static_call_is_tail(site)); + } + } +} + int __init static_call_init(void) { int ret; --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012022.outbound.protection.outlook.com [40.93.195.22]) (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 8AF8230E82C for ; Mon, 13 Oct 2025 14:36:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366182; cv=fail; b=VktH4a8tKbUMIuxWT2qxxW4aqiJPBTL/u7SzRh8+2r+RFaHM8Cg7W15LEULxQAHTLO55D/TY+vvQqLBGUFp6z09qzYaurbSx17DfqtHJ+dSw/iLtQtmjTFEpcBRnPheaXqUTnbvqxhlPkVcWMG/9WXTj9Wd5hToUoWJTtW2Bb08= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366182; c=relaxed/simple; bh=5G7l9JUYmntHx+7Yabm1OSNenCNXRqYfUzavIPa0UmM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ETInCtAW2kW5sx/d7njsWh16Sqj4/fZSoXMxZLSkUc4gfD3de2N/pYTxLTNvs9QKqJn4GHoDbk9z3UbyHPAb3/OWYqEhoJjVtrrc7F9AugDJdnmSsmi8FtPJtyiVcFXlTzHlxDtKaXCXYFr/0i1rSblH+FyWIKX8W10Fi7dggbY= 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=UcA4djS7; arc=fail smtp.client-ip=40.93.195.22 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="UcA4djS7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GE4ILI3hjm4Je40DyAkFvACdEXNtSwqlRVtXtc5+QIIlBqHGOiJ/7Vl/PwxTGJDnVxZ++/j02sq4HTAYbr+WE5lXSPMMjl8Q+9lJuqIC9yOpa68deFt/a9oTr366Yn8QSD/tCQPWDNMfjQOikd7wrwet9CaB2yYaj4U4UtcCj4tFV9S3U43efnbTqyhDL21K/Di+iB/larXWo+573KxvPKRfE2SLRXYNfijVPzG+YwW7RGiHP/or8zbmAVaxZu+3CxqoZPVV1gIIE6A4wUmIm1JQHaBGrIltqzZWmcXa3ZxfE1pcJBJuIaOxRZzpjiOI5eURaULmKfwgjRlWhjj1YA== 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=uyfdNk6a3GZiEgtlb/LC4s5swYUssHt69u3w5wX+61c=; b=YEadReDiw7272hFvlN9fJo8d724FxvVcfLwDWuQqJ5pBW55Swaa7wJqLKllrqqnCYILwVrKitltzgV6bltoYKzodyM6Dc9h+xFUGXtTWWGSVFg0EYrl+i4wI2xEmOdp2EOvxvABBRlY/JUbsG1LEyzA6Zxx89Vnm+ekKtIp3i/Bm3FIMa3EKnlw34rat+SKzKSFnKDHrMQp+SxvCxWcgh6od4dbs1khwWlFAGZWmTbv1HbrlHSTNaiBqG0r9YMYm1jMx/itFiVxiOCDji1rn6DRFlt5xDd7O8HM/UCg2NokMLo6X4M4S51WHMSg9OCBij98iSRmQikNkgRMwCtGbsQ== 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=uyfdNk6a3GZiEgtlb/LC4s5swYUssHt69u3w5wX+61c=; b=UcA4djS7Wej+3XyoCTIEPoS85UBKJlUvpoSmrlzMaThmleq4W6kViMPLw9eEtRWoT3TauqKGfO858n0D+SIfHnMnbkv34WadZjmTGrtFc28q2KhPX8dJez86bBtZd/FM0jW1FHHvr4jk3IU++eL464ZZ8grXyyhUCLLeQqHnmfg= Received: from MW4PR04CA0065.namprd04.prod.outlook.com (2603:10b6:303:6b::10) by LV3PR12MB9353.namprd12.prod.outlook.com (2603:10b6:408:21b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:17 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::e7) by MW4PR04CA0065.outlook.office365.com (2603:10b6:303:6b::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:16 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:49 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 42/56] module: Make memory writeable for re-patching Date: Mon, 13 Oct 2025 09:34:30 -0500 Message-ID: <20251013143444.3999-43-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|LV3PR12MB9353:EE_ X-MS-Office365-Filtering-Correlation-Id: fce2c61c-0482-4f95-f5a8-08de0a65de4c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sV+hBKsn7TUUQ7YGGMPibyXGQzZykAXXX8/loCpbxUBnQz4HcU5nPW45pp7l?= =?us-ascii?Q?vfiPRH1RIgMp+UBpzzCKHxrB3uvFBnlXOvkW4F+UUhVAzrfJPsajUOGBKLsp?= =?us-ascii?Q?HjBOcdzgO9dD/kPWH3RK2b9dhGGpG2DngbeNnGMiZJg5KD2fpK9qhL8V7R4r?= =?us-ascii?Q?cYsE2dG63qgAvq/vUqqBJeAKbfxqQAliU29opOh1eIyNKqi4LLKGPfJ6kbJh?= =?us-ascii?Q?DL9fm9F6wfCrmoL3VIQSXug8T6JWlNug3t1REFc8MFbO/xA/MYnQiF5XSGoZ?= =?us-ascii?Q?DWC/Jz2gihSMD6I6ZfbIyhEH5HerBHpiEFfkFvduqZGhJ4CpriXRaDombUF/?= =?us-ascii?Q?87aBB/NWcXTX37c1hhuZd1VrQ7x9aserhs77P46qdlmC7fMNk02+3ze7aqeP?= =?us-ascii?Q?lKJ4w25YzLp074A3JIL3igP22s0+4QzfltuX3FYuXI8wbHVp1zoovEuxEcZ4?= =?us-ascii?Q?H+/KblJ0unnQReZ5f1nwsHfAEY4fH0mpL2my9tpOnBiPhw9JM3fyByXtfFQw?= =?us-ascii?Q?XI6tqWmQroGYQI88oRBVUkNGS9KKObkgnM9c4yEnz7sCL4ofiAuRqgTP6oPi?= =?us-ascii?Q?wT72uCvbOLEipnjIGCHX5XDTa1Fa9ZFnAjFzaEh0wdnXS7fvFMHfZVi7Z0bs?= =?us-ascii?Q?mVIRNQ100T0qAjNtlqq0dna5ji1go6AiZsc3nICqNpZZagjltQqUX6euCZLz?= =?us-ascii?Q?SJj03TYr4vqeG3L6RYJeGcR05B+U18tsCymJXA8luX3TiY35q5Ak/UimF7Mj?= =?us-ascii?Q?9lOSH5JuVOXrvz20bRI5RAps84UdIJeC4ncdVL4x0d/m9Kb3+pmrxZcYmYMS?= =?us-ascii?Q?vTOAqvlzignI/UvjT6wXhTZpQXgH6qRB/l4L/7OOanfkDYeDb3v2uz3XQoZV?= =?us-ascii?Q?qZlzZdxLQ7uatD2CjTG+V97FGNYt7JgILrw0bH7qV2z0GQEYVpQhJH7cEjjz?= =?us-ascii?Q?HuWUm+s8Ev9kiginHjZtU/bjwbtZTv6kAL1M2p/bT6By+0dBVjfxuqrbOWJY?= =?us-ascii?Q?pH3NsHMnGGTg4zTbR6JHHxz9EDWOt700K1HPKFJ9cAvkfsbIUXCebBUc5nLh?= =?us-ascii?Q?jCt4UTZBwpFDNKPcw4xBFVp9RKaJfCPKm9XTsIGG54zfY1RhfjIahK27edyW?= =?us-ascii?Q?QljEoi9xZIjJN6hDwmx394juaWtoyAfBT4G3G09pagRDJYkl9KDYKC0L4cj1?= =?us-ascii?Q?OEdu7frqJygK48xmfRya2HCsvV4iiViVS+/Vts8h/GQ76/4ze6CbgjNIi2U+?= =?us-ascii?Q?KpyZWgCLILBGGijKKUGZ3YHNZVqv1EzLekMa0DhBTVf4IQJvk9Rt9c289vPv?= =?us-ascii?Q?7mYqmGMgEJZzcgKiDPfRlpq1mQR2hQ+60rYJowZMaLxyFDLxRQb964we6AqV?= =?us-ascii?Q?xJv4TcjcRT7KvEStOjyEGtjuKmE2i9PsxwiexId5GhjKV5Robj5Xvvs4bLH8?= =?us-ascii?Q?WNg12I6CrE1e9YF9NM3NL4qFKl99iqqyowb4ROHKMxWeWx6SQxApYDKG6485?= =?us-ascii?Q?qEKtTSrZA50djnX0yHZpNWUjrr6n4wZBTMmIoyAYPA2n0cjmCmDiDD026XQ8?= =?us-ascii?Q?DjTjVwt6N1kyF/IvsVs=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:16.9338 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fce2c61c-0482-4f95-f5a8-08de0a65de4c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9353 Content-Type: text/plain; charset="utf-8" The text code for a module must be made writeable to support re-patching, and can then be marked read-only again after patching is complete. Signed-off-by: David Kaplan --- include/linux/module.h | 5 +++++ kernel/module/main.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/include/linux/module.h b/include/linux/module.h index e135cc79acee..2d8c34cb961f 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -1020,4 +1020,9 @@ static inline unsigned long find_kallsyms_symbol_valu= e(struct module *mod, /* Define __free(module_put) macro for struct module *. */ DEFINE_FREE(module_put, struct module *, if (_T) module_put(_T)) =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void modules_prepare_repatch(void); +void modules_post_repatch(void); +#endif + #endif /* _LINUX_MODULE_H */ diff --git a/kernel/module/main.c b/kernel/module/main.c index 088f9399af11..0525b1c6d5b9 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -3910,3 +3910,37 @@ static int module_debugfs_init(void) } module_init(module_debugfs_init); #endif + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static void change_mod_mem_perm(struct module *mod, enum mod_mem_type type, + bool writeable) +{ + unsigned long base, size; + + base =3D (unsigned long) mod->mem[type].base; + size =3D mod->mem[type].size; + + if (writeable) + set_memory_rw(base, PFN_UP(size)); + else + set_memory_ro(base, PFN_UP(size)); +} + +void modules_prepare_repatch(void) +{ + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + change_mod_mem_perm(mod, MOD_TEXT, true); + } +} + +void modules_post_repatch(void) +{ + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + change_mod_mem_perm(mod, MOD_TEXT, false); + } +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011004.outbound.protection.outlook.com [52.101.52.4]) (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 B47DF30E846 for ; Mon, 13 Oct 2025 14:36:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366183; cv=fail; b=W9scXz8nylTqZGuoxsA3mbBpXGu5VR35DYSUALjKt2F4/8aZgXkJJK+v2h/rQtIhXO807jz3t6ooWIwA91to3XXPhVPsXqBEa6nqfdA1N9TFYaZ1ycuxpr3EoZzd/erMU4hL5ihzirHh8IVQldckHIcNRmO1hcECDGPzWtVJv48= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366183; c=relaxed/simple; bh=Y81F7XvMlt6c0wi80cDCL67h7sIGkCJMKkd0KdJ8NR4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FsGKc0J09uytMgJqKg81+uR25UBfFQdGJiXE7gPztQFYk5ZQtUXHFfruIhETc+QSNtFFSaFvoxoGPVuO+utzLf+cQr03+ZwicKiUqHZEqQp1P9tWvFTI8PYHYsi5lGJmNM2o+bR+W47Ry4XLO6OdUmO8jqzAErJsgEVkaEhfEX0= 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=pq7nfpT8; arc=fail smtp.client-ip=52.101.52.4 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="pq7nfpT8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c8NAfC7gDCKXq+Lhbj36qkQGCo67swKfiTR6bOwXXv+xVQ/HS7wZtyibHBMu1E/TnxEYUoA7EFtDmE9fNHMOntTH7cGMFRrxY9hsVTK2y4kdtzCA+P3oj0HoQQW6GLyaQqaY3IulQb7FHd22Euh6EIuBc+pIW6U5KyumI3okKkaSPoHEOlWHK/fUMLEcNe7Vh+L1f6ioNqyxMeZvbiNOiKoJCH7vVY5rr9GM7RN/ijXY4xqfHJs+KpsZLIcQVHpZ+SA/li7ukSM5WUSn5tKeBl8gntuTUwhrN7CoGoqQeVk61pMsfguVt/TntrH5V9hMVYpPL3TkzJLPhWENkuYoLQ== 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=vD8uhnE4N1c/45RTWq74khoO1tVq7ck0N6McrHH1mrc=; b=dh1abao+IgL8g9vIFrQpbBjD+c45rkDk7713XyBbMBIpq/cB2+HC7pbPT4c5KpLClWoVMmKG9w6HTKG9+Ho114b70ROkMxwpv+xyNzR2MEBrpy3J6nDot1M+tcHI6UJjdYzazNvE+wxg6RjqlQ0OqF0VApvxgaE6svkusytQKv69r9XzITHJoYKDwbYnvFEnFTs5mafeZOvs3fXv4qLobvzXeFqqNmvRC+YSAPdKRpMzq+oF5bkwH/PBpqcFujaY0OqyVg8H4uLtTs4eOGMAQHs90JEhcZ8Gk+SHSm8RXOpIg5e8gBVR+L/m3DrJmg6Xl32Dqp426WXtMfVri0vlMg== 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=vD8uhnE4N1c/45RTWq74khoO1tVq7ck0N6McrHH1mrc=; b=pq7nfpT80itfAoberAW3B4j55xMbSp7FrF0nlOCH2npZH6OE/mMB8NWH99ESGpLsWKHBfup46Zyk0h5inpXHKY+MqILiIoqGwRQnAubLt+VlUwUrb6ImjzanzSNpN3hkY0HfwnMugE0fAFeCvytgftFwosyfDkY7iEiJDMS64+4= Received: from MW4PR04CA0085.namprd04.prod.outlook.com (2603:10b6:303:6b::30) by DM6PR12MB4484.namprd12.prod.outlook.com (2603:10b6:5:28f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.10; Mon, 13 Oct 2025 14:36:18 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::1d) by MW4PR04CA0085.outlook.office365.com (2603:10b6:303:6b::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:36:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:18 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:50 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 43/56] module: Update alternatives Date: Mon, 13 Oct 2025 09:34:31 -0500 Message-ID: <20251013143444.3999-44-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|DM6PR12MB4484:EE_ X-MS-Office365-Filtering-Correlation-Id: 3559a0dc-be2a-4c9c-994c-08de0a65df10 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nAKBaRFKmR0UPTy2Uyerz2yZgau/3sAM3v93N6UKHGtq40tOqMCQYv15Cw0S?= =?us-ascii?Q?Gbxfr+TVq9vUoHHXdKyn2eQzrD++eitcNuU4uRP2cPafl1p444rFiuVvYQyy?= =?us-ascii?Q?sqdsQH+ZM3nFzYdfhqxF++Rqw4gQ4zF+ihqTVrZM4a9mrr+3R0Ni+AROASYR?= =?us-ascii?Q?UeBOY5819waSLDHs6yAMicFCdrb5433vhvWG63Ct83m4b8rFEwgxQ1dJzOXl?= =?us-ascii?Q?7GPW741mP6Pl5oz6now8f1Sq6PEdLshPlYnuv7zlhvOwAa6oeLxLdIQjjYRT?= =?us-ascii?Q?/HUc0RsmJDvuw3dm1luHEEwME47P+UMPSEksNJCGx5v8l8P8Vg1Z7WRd0ciC?= =?us-ascii?Q?PrVS32KDLmuTzLZOtLYzhaye/Q5kfWpVEiQ+xKJkNW5S87aqHXpoRWOeMGVj?= =?us-ascii?Q?23d/bd8PxQCBnxIz1rBbQPFgU9OZ7xzngS9ijJTk3qGjtNpThfexA7J1lzpb?= =?us-ascii?Q?xZyTH/MkwmvHE0i9h1vxsFmvP7Ob6bvpRjHUh6EZ+mGtMT2/ZbnaEIpAcEPv?= =?us-ascii?Q?/bOgQ9fSF6Buy5hieLAMMRdSOABv5OPQeEr/1gaPBwgrD6+gBEtXCMCrTRyD?= =?us-ascii?Q?gxQI36MCbJjoFzsiJKgT2em8lpeHwM65OkgmFF0LgXwswDYBHXkO/uUtdDHm?= =?us-ascii?Q?MFrpM3JPYGIEsI9YzvPL8uSDIHKKsLVCGL/iKUDv2d5zyfEZ0qjp0rtQGZf+?= =?us-ascii?Q?kzbbLzbkxkzjdChyHrfTmWvtYq8kW/JyrMctq34vIlRcyNUce7N6T8xHBZ8D?= =?us-ascii?Q?vmuuo9YVJjbQ265QLHWyORvZNab6JmZRPYD+Q5nm9ULr89PI/pzxx6yl3nrK?= =?us-ascii?Q?oeR8Usko0Sr06yu8vcZ6SpbaqxNQ3oUK50aAqhC3YRwCyxBcHKWRZFwowiRh?= =?us-ascii?Q?nxj33TwSdAMNRe2kH4ezU0T3KY3p9vaSf1e7Vt2Siw6pyNiKqg5iJeFGXtBA?= =?us-ascii?Q?frHHZY56p+jXlIdFDiyYCnDBuFN6bgh5+6UdqOKn+lxGWIvBSk70EOgBXBDj?= =?us-ascii?Q?9lon0qH6JKkIhEZQy9iPSxMq+cHeYb2LUhIhCGeHSooKf24NjB7abMZbWrVk?= =?us-ascii?Q?dKd4zGuV6TuPBTziKYVbEEtgbXBN6awmQ1UwdHfVReNZGJ75VqgjGpCvFnV6?= =?us-ascii?Q?QCp1CROMfuDo8vg6csKWLG4koKzpY9RefxJTTUs4htlAnpejhFEJnep1tV6i?= =?us-ascii?Q?5qhl2ILhtPK4B2xccGGUmzstiFSexvtyn6X8QOmexf+s7/r50092FqLqbvSO?= =?us-ascii?Q?J60PjOWTKqGHod2/jCzq2g2uabCtJwEY6J58oDNO80zZolK8BMN8l3EvPXfy?= =?us-ascii?Q?Ss+E+8X3unQq9jWbbWnEiK8EBczojMhYZOUKxPds+g9T9pq5+xbt+8qMf6zK?= =?us-ascii?Q?6oEP5mrkMKQp06Ky0B5B1B9n57jD/r3yWtYZ2UedsNz1i1+53sFEerp16Wdd?= =?us-ascii?Q?skUxNPyaKfLLSfbFNzMCaQhC5Ca4tmLNBolt3yR6ekiGIbc/GMtG6ywUhXFm?= =?us-ascii?Q?+hERlymoDw1Ld1Ou5JEPyFBlp3fNgjS7Lrt+6gre2VsGEoyyc9G78oc1+JQA?= =?us-ascii?Q?c1Nm3q8peZzSf2vI2DY=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:18.2171 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3559a0dc-be2a-4c9c-994c-08de0a65df10 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4484 Content-Type: text/plain; charset="utf-8" Update alternatives in modules by making the module text writeable and then calling the arch-specific update alternatives function. Signed-off-by: David Kaplan --- include/linux/module.h | 6 ++++++ kernel/module/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/include/linux/module.h b/include/linux/module.h index 2d8c34cb961f..f29974cae6bc 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -1023,6 +1023,12 @@ DEFINE_FREE(module_put, struct module *, if (_T) mod= ule_put(_T)) #ifdef CONFIG_DYNAMIC_MITIGATIONS void modules_prepare_repatch(void); void modules_post_repatch(void); +void modules_update_alternatives(void); +void arch_module_update_alternatives(struct module *mod); +void arch_module_pre_update_alternatives(struct module *mod); +void arch_module_post_update_alternatives(struct module *mod); +void modules_pre_update_alternatives(void); +void modules_post_update_alternatives(void); #endif =20 #endif /* _LINUX_MODULE_H */ diff --git a/kernel/module/main.c b/kernel/module/main.c index 0525b1c6d5b9..fa46ce4285dd 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -3943,4 +3943,46 @@ void modules_post_repatch(void) change_mod_mem_perm(mod, MOD_TEXT, false); } } + +void __weak arch_module_update_alternatives(struct module *mod) +{ +} + +void modules_update_alternatives(void) +{ + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + arch_module_update_alternatives(mod); + update_all_static_calls(mod->static_call_sites, + mod->static_call_sites + + mod->num_static_call_sites, mod); + } +} + +void __weak arch_module_pre_update_alternatives(struct module *mod) +{ +} + +void __weak arch_module_post_update_alternatives(struct module *mod) +{ +} + +void modules_pre_update_alternatives(void) +{ + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + arch_module_pre_update_alternatives(mod); + } +} + +void modules_post_update_alternatives(void) +{ + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + arch_module_post_update_alternatives(mod); + } +} #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013005.outbound.protection.outlook.com [40.93.196.5]) (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 039EF30EF65 for ; Mon, 13 Oct 2025 14:36:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366184; cv=fail; b=XuPsbui0plUHwod791GP3N3V9Bh46tiH4pknH2qJyN2d9Wfltd7eGOepa+PpKsa+iyu6YTM1JSxhQBKD3rnLvdQx0hzVBA+24nCdcfkihXWYqjOW2gkT0YMXOh78q1qTj0Lxb0hLPWBbOqIa96EblwqMjdulfRVKrE0F54G1LdY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366184; c=relaxed/simple; bh=BsYXgzoT9kMLwt0syG8lPLIpPqmm+dmshKByzE7bAu0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Tey9iinJXhv74rFvBjlrETVmNsDQqB5qvHZfSupTlNp3BJwE+6PoH6kzg+MOPi4NlK5JNx7vF0PtNjOoTCEqSTQ5wLj1Eg16hvDQPe+oXOxfaUX7RlW+i4CvgNVQRHEMP6d5PiYFlUsWGpFIv9Zt3w4GXpzZfWCTTu1QsO4WZ4M= 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=YNgeoPhm; arc=fail smtp.client-ip=40.93.196.5 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="YNgeoPhm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HOq2rmu9noEGcmE8RD2DCBsH32iLRZkZB5O8lAi3pINUpGKaYvpnL3kwF0BJFsMMlaF8QoeuJwI9YuTF7KJR3yL7EL0Y8Yo3Mak07qYr1czBp0S1J/ZD6gt5V2h7ipBTiveL3RAPc7AmTvBycn7CPJqDZv6L1UeMSM/FsKqJOUw584ZSbJV0kUmAstKPxd5epDEMS458/RkLhzpQpV0nl00zMvwniAJvukTkujT4WA62T5zo0JDsNPRr1+Wmngsmr1UDghJZ9hyIGKqY3Oa4cdP9hjS9/HC/NVZpaUdKUInEku9du5XkUopks930MLGcTMZwewl0iETseOEZsKEqNg== 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=PvvW6BuAyyXQMi3vRCpchFRtYzlxEL1qOFXQj7byGU8=; b=Wqjj9zY4TavletzjD9fXd3UNkO06CdXd0rn2iawMDKWvkhIzXEW4r0zcd1ScMvKjIRGPo6lDxAg9Bzwjk8kT3VNFvugxn8RyIVjAdM6IADDQvwImk7pwhWeKAVjsc8fWfioitD2p1/lEkBwfKeSG5iZI8ikQeh3wUJ8cEtMFPOzYcC0qBOyyBR84fNcLpovFTG5ovYPa221++RlDm1cgcHgMidyyifCaFuk2fCMu97hvf3+ChErk+bwNNV5zvPmGVXySJOPiKxthwBVf/EkEQFUf+wYOJTP4lClM14wl7TvYiZxbTpI2S+vkv//vVfFEjMNCjvGrstDhZEQFbs2qPQ== 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=PvvW6BuAyyXQMi3vRCpchFRtYzlxEL1qOFXQj7byGU8=; b=YNgeoPhmkMzMKs+Uo3acjQBrQDW1gfawXgPuNRx27LQhU11PVh1e5EQKm/mAEZGshqj0HAGgGz/y1kyAPS1bzcX083fmeSX7aaud57xkgULwxw+yL9KLJQ5E7TTaZ3w8O53GiIhn4nAD/HtjxyADiGdNkUeGqZnjlndI9ORM3MU= Received: from BYAPR07CA0042.namprd07.prod.outlook.com (2603:10b6:a03:60::19) by DM6PR12MB4433.namprd12.prod.outlook.com (2603:10b6:5:2a1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.10; Mon, 13 Oct 2025 14:36:18 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::6d) by BYAPR07CA0042.outlook.office365.com (2603:10b6:a03:60::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:18 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:50 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 44/56] x86/module: Update alternatives Date: Mon, 13 Oct 2025 09:34:32 -0500 Message-ID: <20251013143444.3999-45-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|DM6PR12MB4433:EE_ X-MS-Office365-Filtering-Correlation-Id: e2af1c50-fda7-487c-4823-08de0a65df45 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?ioRl8FGlXQjDAtzqZIoJi09wah4vpZogduT17XW6WCBRfPU+u4GhaBtDeGb1?= =?us-ascii?Q?FTtp3FA3dwiiP2nBZd/x9eg8vecmDjYIMNveyosQxnZc6zy5fMhAh7W0jdO3?= =?us-ascii?Q?CQnT15J22OSo4dxfpdTanXA56ZnMNGRWIbfZ9C5Qhk8kNpm8LjAHCEqRwqQl?= =?us-ascii?Q?qEAY1BoJoIOK85Wp96kRT4LngH0dodr6Xp44tosRlRBg6F1eNksncPzUvJw6?= =?us-ascii?Q?DxZSeRv81zCZiFWifRDMkGN+CDxPNrXiRp7WdVdvNSgv3QRRtZ1DCC8Pk14Y?= =?us-ascii?Q?OrhIJiZUC5clZYbhoqDGgWV5TSi+x7WRfchYqxDkO9pmzWBRd8wYBb91kEiZ?= =?us-ascii?Q?+0kJwzmnN5vNr9Nf5y3iQe9yE/BwTRf55YSWzm+R5xrM6cIuWJH4eWk8TNCG?= =?us-ascii?Q?9ndNdOgmj0+7llW91WnQXs5TPpl5EnuE3rRU9Wl92GLCeZ9PYUkuGJYzc7Ic?= =?us-ascii?Q?BexYVrzUn0zdUJ1ShyA5OCCM/mMo2N5XnOLfjNdbZ/TPh+C5/PdwtRiMbnKO?= =?us-ascii?Q?y/QzX++eiqZqRsLJumbYah/FDfg/+WVjhuhty2tzoYQrEUNGKyci+f0N5PTB?= =?us-ascii?Q?V7VtQ7qu9DE+wP/ivVLOmTC1AJyPkv+nYz2t4TuM2OH3+190P2YSVuADSN8T?= =?us-ascii?Q?/bw1pFK+Mewuu84c0cHDPLcHTsIedMeZSu4S2KDNMylwvL6uvGh1Rxo0Kfgi?= =?us-ascii?Q?xTJ+HrSg/YLmRxtwIiy90QfgBzx5np/7bJYHrYuROSLHNjjXiGebD05FnR+i?= =?us-ascii?Q?txLrIk9zxFBmjQXC5r5aUqhjDLscYOoUe2YkEE5q6YwHMs4jrEObqP2qq+mI?= =?us-ascii?Q?wBgle/8S4/e7D1+Rt7Nz3XtAspsYegYkybAY1N6/ILdrHJ5a6ceiZMyFJkKG?= =?us-ascii?Q?WoZvyWS5yAukhnqNs8oVlzViJY0PvQcMsAsSvirrYeL0znIfE67JHaTYV/1o?= =?us-ascii?Q?khY20dg8w/v9T+y0mZtyerEq8cBsD8DEIsVn9N3SMX4x0Y4fL9StW5zy3Guh?= =?us-ascii?Q?hBEN+iJgaPkcNocP9KzlRKXHHI0nIkupxTzspTZEpEArO6CGKeurvYQ0jg2D?= =?us-ascii?Q?jS5YSXegaqkPyzYhJLBUV/ZgHSWmhFF3ObUkGXj6Wtq7GlqWFEGuxqt/UN54?= =?us-ascii?Q?Oj0YhEZECby5mlMv6HoChPprNY6zkJUKxQT6Q8G6LhFv9s3YK6sVXlxtQEBQ?= =?us-ascii?Q?IB4RpxP/V3K7PvblnS2AdMMsLIqcClBzBcTd2o85bJl24qH/G1W7J+bECQFB?= =?us-ascii?Q?Xl/DpEU39roWaLoti2CnIPy54w0gW3Igo5mTR/m9T3VuOxBTunrvY/NVgUJI?= =?us-ascii?Q?d2xjRkeWaY/30x66Xmed6JSKrecSC/FKIDbqV1JDFFi8nsBLBv3p1sa6tgGw?= =?us-ascii?Q?GHvX/9OvxE/bZ6Mr7mGJ7Zli1L5LRIoDHZX+vOkDJhCL3e6DR2rcRNhNn8iG?= =?us-ascii?Q?8VHPl177RRZyiUtnXQTFIBmjlwUy8A6iL9CV45qxkfgB0GHpyTFyhIP0GYRv?= =?us-ascii?Q?SRyBLjYTa5eDKNAKgDjX1nMjEnHVC83PZVLeijJ3Z7hPDpEAHrFUregCh5c9?= =?us-ascii?Q?iWBJEm6dTyTz/G6m0JA=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:18.5605 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e2af1c50-fda7-487c-4823-08de0a65df45 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4433 Content-Type: text/plain; charset="utf-8" Support resetting and re-configuring retpolines, returns, callthunks, and alternatives for modules. The ELF information is kept from when the module was first loaded. Static calls are non-arch specific and handled in the generic module code. Signed-off-by: David Kaplan --- arch/x86/include/asm/module.h | 4 +++ arch/x86/kernel/module.c | 58 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h index 58d7f1017a14..f72359b5120d 100644 --- a/arch/x86/include/asm/module.h +++ b/arch/x86/include/asm/module.h @@ -27,4 +27,8 @@ struct mod_arch_specific { #endif }; =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void arch_module_update_alternatives(struct module *mod); +#endif + #endif /* _ASM_X86_MODULE_H */ diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index 0765d2360a33..b6beb2b3469c 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c @@ -333,3 +333,61 @@ void module_arch_cleanup(struct module *mod) alternatives_smp_module_del(mod); its_free_mod(mod); } + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +void arch_module_update_alternatives(struct module *mod) +{ + const Elf_Ehdr *hdr; + const Elf_Shdr *sechdrs; + const Elf_Shdr *s, *alt =3D NULL, *retpolines =3D NULL, *returns =3D NULL= , *calls =3D NULL; + char *secstrings; + + if (!mod->klp_info) { + pr_warn("No module livepatch info, unable to update alternatives\n"); + return; + } + + hdr =3D &mod->klp_info->hdr; + sechdrs =3D mod->klp_info->sechdrs; + secstrings =3D mod->klp_info->secstrings; + + for (s =3D sechdrs; s < sechdrs + hdr->e_shnum; s++) { + if (!strcmp(".altinstructions", secstrings + s->sh_name)) + alt =3D s; + if (!strcmp(".retpoline_sites", secstrings + s->sh_name)) + retpolines =3D s; + if (!strcmp(".return_sites", secstrings + s->sh_name)) + returns =3D s; + if (!strcmp(".call_sites", secstrings + s->sh_name)) + calls =3D s; + } + + if (retpolines) { + void *rseg =3D (void *)retpolines->sh_addr; + + reset_retpolines(rseg, rseg + retpolines->sh_size, mod); + apply_retpolines(rseg, rseg + retpolines->sh_size, mod); + } + if (returns) { + void *rseg =3D (void *)returns->sh_addr; + + reset_returns(rseg, rseg + returns->sh_size, mod); + apply_returns(rseg, rseg + returns->sh_size, mod); + } + if (calls) { + struct callthunk_sites cs =3D {}; + + cs.call_start =3D (void *)calls->sh_addr; + cs.call_end =3D (void *)calls->sh_addr + calls->sh_size; + + reset_module_callthunks(&cs, mod); + callthunks_patch_module_calls(&cs, mod); + } + if (alt) { + void *aseg =3D (void *)alt->sh_addr; + + reset_alternatives(aseg, aseg + alt->sh_size, mod); + apply_alternatives(aseg, aseg + alt->sh_size, mod); + } +} +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010035.outbound.protection.outlook.com [52.101.46.35]) (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 D6AA730EF94 for ; Mon, 13 Oct 2025 14:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.35 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366186; cv=fail; b=nKKGohdc0Soog6q/gD6O7b0XjqUd530zuAipTsmWGFLEGgjZz+zSB57mAozC2J2g/Z2ri1fqQmG/n6HgrhZLN1Y7egu1F7mgl5QClo3w66xXvg8THDIBTbA9At59j5UHBjsP14ZAHi5vRfTFVpKed/nYmubMgQBkEwqysC6DGMo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366186; c=relaxed/simple; bh=cQnV2+9V/I/enQGNFG7/7Glh6w4ndBOpfqgM6kCTiHo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JtdBgzrlGmrNYY0RpY53DPhK99sZjzeGebMefHj1+AA7ssKqrRD8DLs7BcHbnfO0uMSX43pmSyhkV5LCLj4ZzbSEK6XsnEerJEy5ESzm1SUEw+JkAEo2rIQ5I0Qc0ISUW88CeMn9jli9ca5dj7aNdagx16uK44PfqZNvt7xK5ZU= 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=lO/qxYt0; arc=fail smtp.client-ip=52.101.46.35 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="lO/qxYt0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=F6GI+uutf3T7L3AvbPIRmbVgi8fG00hGi+eaP6qn49eSLGVfICEi/YtquUo/3P6jNhQx6cHAC+FtPE4uDMgKqKzAxPRtED7VzU7MttdN5+qZmFmU4mFBh89FosUJCNtxMV66dsSTzmBbOJ4b6+M2wUNolPLlurdlgGYQ0A5I+N2YJoUdBJe8AUMnH6UY5VQ48YCVnmpdFR58l2q3Jb4fe6Bj/OkIKcgcvhmhanHplT/faXos61TShGSMGYquTSkDudBoR4r9/2cq/YDWatDtGckHbhJLO2tkyEBeqxa/hGKZ6g1mrmZuaW6Nl2svIw8LVSDqaobTfjO9rHmpEKJ8hA== 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=pdYkxkx2pnLcPUqwHM2xC9tCJEv/Xqaou9QFuOo8/Bc=; b=sznDzWXFP8qNwrAAfxAOnph2a7Ze0tcgSbTrT/mSniu3LAPHjlN3/xqKj2uuVTUPibmXamIJgweykQ1Ulm/VG5IGdMOnQmvzXXeTGhNJ4/UDBoNpzN1nNopodGPtJ5e7vccfrWN1RvYT+ZCgdgZQ0Ng6lIC3aLciAOMC983xLAWFWjtaxM+AgqdzhrRX8qgB2qdGtteKk1WAmoUWMM2Js1o+SFuYYhPFINdpvHCrBwzjbEvz+3kJKu/XUFKDMNWubXRmf2MM3ml15dlOYjpfTLO119FmOe/xTb2T7Fk2vNHlLKjFW12KsUKkoh5qH2GxrEYriIHFhJajfp4vUI/89w== 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=pdYkxkx2pnLcPUqwHM2xC9tCJEv/Xqaou9QFuOo8/Bc=; b=lO/qxYt0WEURUitXlRLDYlNAbS2OfXsAhZes/dKQkkb3VvI8NTD3a7PgPK4qq+Wbyn/cR6snM2klGaC0XLxcOkyRBm7gPL6eOaPP+kaj/jtUQbSHopUAlfn4zPf1G0igbUpFIy2E0QViA8lRVI0x8h6+hJ0ganvz6o43wM8CnJE= Received: from BYAPR07CA0044.namprd07.prod.outlook.com (2603:10b6:a03:60::21) by IA1PR12MB6211.namprd12.prod.outlook.com (2603:10b6:208:3e5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.11; Mon, 13 Oct 2025 14:36:20 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::ae) by BYAPR07CA0044.outlook.office365.com (2603:10b6:a03:60::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:19 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:51 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 45/56] x86/alternative: Use boot_cpu_has in ITS code Date: Mon, 13 Oct 2025 09:34:33 -0500 Message-ID: <20251013143444.3999-46-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|IA1PR12MB6211:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ac9c84f-d8cd-40fb-477c-08de0a65dfd2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RKv0w5ClhOi7mk8qHq7foP0zxIuDy2CBGpsZqZoF47TNcS+dtL37bahAV0hp?= =?us-ascii?Q?2YprZX9C3TQWpaynoizMTvPYAWKEdntwxEg9/6x+3MGVZTb0Jk73yqTPVKjw?= =?us-ascii?Q?2TdiUPOzPDJv2xZiQKDIGnIGFyk2jD26Y4Fsjbkinafe8iPYtH9GGhQjIBJZ?= =?us-ascii?Q?KvoJ5GWEvGqcLlPrT6Xp/mMjkVJKnfm0R3Il0LODOrUMK/qGPpYlYZtZyhrT?= =?us-ascii?Q?sbXyVUXyNYdoIVmamFAOAJcYg/72/jyG9CHm/Du0FeyONuxIjWpNBrens9Pq?= =?us-ascii?Q?li8QQQZHkXLX0SanHQNCVEXFM1a77xLvkb4QrzDwxMWvQvDGEgCyH58NE35T?= =?us-ascii?Q?zLRRdTcSJKZwxSWwJ7yuFqhYDNtYOi4zNLL3suF2TjY8W7fPWEoqmfQiYSOh?= =?us-ascii?Q?PqquEER2Dy+mHf9bJLJySO/XPQ2jAq9yJimjeq9EyLi9k2/LaomhgknFX9ks?= =?us-ascii?Q?FxYpo0mVoDBuuo5ay778KBCXRQ0VWG1ChwR62LBLR4tyaspzzOcvH1g2Cwsk?= =?us-ascii?Q?Z2y6s3AyGfb25oFd3TV2DXiLNBAySdc/LsZv12Ja8eZUJzY39P1J/p8au6M+?= =?us-ascii?Q?mhfh6KUuUWd24LYV20DfHP+thQffQiATvhWeSClJoxPFG4Sagd4XGh8D17oy?= =?us-ascii?Q?je2YBMMaId9IrL4vfOLEW1v6A2+pA0bi5pRwS7NEqarNC78OdB8VlvFPL80J?= =?us-ascii?Q?pLQcNlsEu4xgVMIyuNiEcF38zlQOIETe9dqUEO8j2E46qyr89nbUAUilSJGu?= =?us-ascii?Q?5lMxUvPsamKm2PVmH0pPYKBf5oFNyrqLiBP3fFBVW2CJk5jY+3TVpunX6f4R?= =?us-ascii?Q?CInylLTIIRSu2m55lSSjkf2lhWsFjj0gSSs9/pA2sP6UhZ3h3nrOEvNZEkvZ?= =?us-ascii?Q?JIkrAsMWZDbZ4JbdTPvEHWdXCRLCIrfhxDlAHVMJmt8KpStGFR1ZOQnwuGzm?= =?us-ascii?Q?htXxselOUYy/uPnM0XYNnHAqJMshHFWZFlZnfdN5UkNu2teCA+/9x/jN4Hr9?= =?us-ascii?Q?rQfA/8h/uN/B7dBHMe0vo9L1vsK40qbsu16jo3SLgwtm8q9efvCo8HIHIK2g?= =?us-ascii?Q?5HUJOrEfaJiXZu7lKMBvqnN/xJTqdB/euJ3vVXAXEoDrWKHxKmcHP2m6+Bwx?= =?us-ascii?Q?afQOMhkLIfxnjnJ1rKoYUDub61uiB0N6gus8TKJfNU+He6QZT+/nKNWbUmxw?= =?us-ascii?Q?FjapFw1dqS6kAUdqUL8jawpAEAubkle/mLA87kGBC29EvIidESeTeOyS25OO?= =?us-ascii?Q?zcSTWeOCGK1yfHi/YMymrQtSD3GCiSDk/0jlkLNf0jNqx8H2hW37MukD79ym?= =?us-ascii?Q?tsvYeS8yhvApUJMv9t8UVLFB+QeUcwRWzDwP5o2BSZLFp3XwRr9wbR2Akp1s?= =?us-ascii?Q?ml7sDJS7PvvX42Ln/gDUMU5okOC6fxmC3lU32s6IxOEeaAlHXJVvoLuMpoTg?= =?us-ascii?Q?/nNn+HVrRzt63DbMTfO47aNz3soCFMLvRhjItaJr069O1eqjLeBrip21ZBVj?= =?us-ascii?Q?ra3hrJJplE35sY4yIp0RsDcV1YGl29j97ijXZfX0ca0WB82g8fzRIZZKLqBC?= =?us-ascii?Q?sk2wKT5SLiKQ8pWKmpU=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:19.4868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9ac9c84f-d8cd-40fb-477c-08de0a65dfd2 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6211 Content-Type: text/plain; charset="utf-8" Replace cpu_feature_enabled with boot_cpu_has because under dynamic re-patching, this code may be called after features have changed but before alternatives are patched. Signed-off-by: David Kaplan --- arch/x86/kernel/alternative.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 2d48d750d4d9..5a543ffca10d 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -187,7 +187,7 @@ static void its_fini_core(void) #ifdef CONFIG_MODULES void its_init_mod(struct module *mod) { - if (!cpu_feature_enabled(X86_FEATURE_INDIRECT_THUNK_ITS)) + if (!boot_cpu_has(X86_FEATURE_INDIRECT_THUNK_ITS)) return; =20 mutex_lock(&text_mutex); @@ -197,7 +197,7 @@ void its_init_mod(struct module *mod) =20 void its_fini_mod(struct module *mod) { - if (!cpu_feature_enabled(X86_FEATURE_INDIRECT_THUNK_ITS)) + if (!boot_cpu_has(X86_FEATURE_INDIRECT_THUNK_ITS)) return; =20 WARN_ON_ONCE(its_mod !=3D mod); @@ -901,7 +901,7 @@ static int emit_its_trampoline(void *addr, struct insn = *insn, int reg, u8 *bytes /* Check if an indirect branch is at ITS-unsafe address */ static bool cpu_wants_indirect_its_thunk_at(unsigned long addr, int reg) { - if (!cpu_feature_enabled(X86_FEATURE_INDIRECT_THUNK_ITS)) + if (!boot_cpu_has(X86_FEATURE_INDIRECT_THUNK_ITS)) return false; =20 /* Indirect branch opcode is 2 or 3 bytes depending on reg */ @@ -967,9 +967,9 @@ static int patch_retpoline(void *addr, struct insn *ins= n, u8 *bytes) /* If anyone ever does: CALL/JMP *%rsp, we're in deep trouble. */ BUG_ON(reg =3D=3D 4); =20 - if (cpu_feature_enabled(X86_FEATURE_RETPOLINE) && - !cpu_feature_enabled(X86_FEATURE_RETPOLINE_LFENCE)) { - if (cpu_feature_enabled(X86_FEATURE_CALL_DEPTH)) + if (boot_cpu_has(X86_FEATURE_RETPOLINE) && + !boot_cpu_has(X86_FEATURE_RETPOLINE_LFENCE)) { + if (boot_cpu_has(X86_FEATURE_CALL_DEPTH)) return emit_call_track_retpoline(addr, insn, reg, bytes); =20 return -1; @@ -1004,7 +1004,7 @@ static int patch_retpoline(void *addr, struct insn *i= nsn, u8 *bytes) /* * For RETPOLINE_LFENCE: prepend the indirect CALL/JMP with an LFENCE. */ - if (cpu_feature_enabled(X86_FEATURE_RETPOLINE_LFENCE)) { + if (boot_cpu_has(X86_FEATURE_RETPOLINE_LFENCE)) { bytes[i++] =3D 0x0f; bytes[i++] =3D 0xae; bytes[i++] =3D 0xe8; /* LFENCE */ --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010000.outbound.protection.outlook.com [52.101.46.0]) (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 B737930EF8F for ; Mon, 13 Oct 2025 14:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366186; cv=fail; b=HKVD6hood2WCcwvoGBG4o0Q0Ki9vkCpWga46+U5KLsnR7//C1ijy3w0QpB0kVYE8WJiATstFWj/Q1sjzta+EnOU8E1rDFCImioBCvFvs812VYJ48LwIFTgCZWO9IswvSZlf3abHe3zEEpPQb0UzLKNip4/RGME+SvzHbvrF9AEE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366186; c=relaxed/simple; bh=LG0kWNwoDdpLDXoRSdVGYFbczmlCLa/knBUs8Yzzh2Q=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JV1eNlNAN/y4BAPEVeCPJb1U0x4k3QQrvLoB+ubnW89+J1bb66NllY7aSDXAQAZZngHJ7Om3YpKnVAh04OHKr2l3gdZ6tWa/IjTPNJjCKxfZqZuINUWMOQUB6XF4pdC30VDurYR2+cN9jCXHxu+nK5AfSThx02+b6Mv1C9S1HbY= 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=CwaLLoN3; arc=fail smtp.client-ip=52.101.46.0 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="CwaLLoN3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jrGW+8Akdfph2zgmoTCR3pVSXdOZ5CRoLlz4SyQpfiPpDQBhrYkV5mOgzXUxxcn8smXf5gpi5ijwHN8nZIMjZA/3b/BE8aaA3hlUY43kYLb6nQXTyal8ld+qlG59oF5mdksYYakDe2voUs6pvtoXFwMDr2LirKI+h1ChQbZLSotOXlMClFFolnwoEnF2yyQYkqrlkp55hzgVmuL6Q2JfiVjSVCJDmY6bvrBNK9+QzERyxr/kln7U+GLeqB0sCm6IaVSB69QzY2p2XbZ2ZNvtZWZJ5qXlCSo0YLE2ZBfTYFJW2vyQIXahVUwN8OBCK9yvWkaRiPzzcidPwAEGYxMI+g== 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=lJ/HIDnNyt+7iXraBzNzjKoY7DtFRMH2QR9WX3QKP7Y=; b=CAZFA4XAUJCW3w5Xot87orDnE0hhjBDzpJvOJC1wdIXZRqaxSOUY5+9+9X3fTUul6fEd9AF9hVvsXrwhXCVrZMxtRAytr7dMtTY1fkNjoixcUSGFvUpylrrQ/AMoST9nzrN/Dr0BQCMCNCozE5k/yYm/F1XNfwgebJ5G1nusWtpmNey0d1bQdYjJSu/TT8w5Zml/SykX/8a0dLH0u4rjxgcMUMpImmGAzPvplI1Rm6DbqHdhM6ozIKgWVQYgjWO3b9u31dx+Yp/Ge7/Swozy67D3HDHcrZ/BFBWuKsnbmYgUldRlGQBF3YT03q75aC9D8Hd+Ta295n+3mGz0oP5EtA== 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=lJ/HIDnNyt+7iXraBzNzjKoY7DtFRMH2QR9WX3QKP7Y=; b=CwaLLoN3k62E+OloV+pQ1oOpvSD/QDll2F7XnzG2I0lYo8z+xacKJax2Kb4jo42gVgGAMvfUpLVe6hvR5i2QovgeV0VXB6gCVF8u1DeZ5+hh5Pmlbxc1NAA+1+Cfe1yKBo/vTLHjNGfbnlGt9z9lT5xcXcBosUZZ+P0i56l269g= Received: from MW4PR04CA0070.namprd04.prod.outlook.com (2603:10b6:303:6b::15) by DM4PR12MB5746.namprd12.prod.outlook.com (2603:10b6:8:5d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:19 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::a7) by MW4PR04CA0070.outlook.office365.com (2603:10b6:303:6b::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:19 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:52 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 46/56] x86/alternative: Add ITS re-patching support Date: Mon, 13 Oct 2025 09:34:34 -0500 Message-ID: <20251013143444.3999-47-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|DM4PR12MB5746:EE_ X-MS-Office365-Filtering-Correlation-Id: e4bce6e7-6404-4cb0-4ea3-08de0a65dfd0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zIMWR0APj4aLfNPQeycPeLsWSWgDcL2hHHJcWICb1mEOBVec1u0XB18ywjNH?= =?us-ascii?Q?BRGDJOsBn0KbiSFRcS0FbMtoJtZhPaNdkKhHeJhxYKG72N2BTvfEJlGucLNR?= =?us-ascii?Q?dx76vk81bBiKkEDhiybR9gZvzAuBijJqzv6/sVPeDlHQHE+TH2sjBIMeWe/Q?= =?us-ascii?Q?6o33FJvrYx4yxEBXvgeM75sBiM/vSn78WrG4O4X+LC80hDE/BQWKvOylF68E?= =?us-ascii?Q?hgUqT6cPX537xda3q2I1JNwgR6M+b+MSVA6/C4tVjWPVE4jOf78bFscBRBAl?= =?us-ascii?Q?HYuPViIIEVdwuD+dtSNCo3UUiDCx8CyqpTzXdQq6H/LhbDkNGz+3RNVrldaR?= =?us-ascii?Q?mAYzWAVawA36pSI+XTsF2hFgpBkiuocom4bimDf/HxcGdSMYhtkx/uAPZqip?= =?us-ascii?Q?Oy1yvSykrWFLtrUfVU0Xt/B/fVXufLlWn7H9LxbR4fXB9G+Z0siS91vnUgj6?= =?us-ascii?Q?e/2gbehI6p+9bpWSQKPDP2jL1wjSVq8HW9XJsyV3sJh32ixIjLV0Ylf1CeXc?= =?us-ascii?Q?o/FgZwZ10KOKj9BFWhrwYUWwalFxDRnnXiERfK5L2dHs9SXYiWjzft0L2fOl?= =?us-ascii?Q?5Jqcp9FLblgaQusKLIdlcsOQ6iucVV+dtmbRaKxR+rOA5SBYNyNgax/7JBW7?= =?us-ascii?Q?lPi3vT32uB/rjV7y4SoH+OPibkjSrwIaxlB0A6DvCIuCa2RcUcz4oIUpvA+V?= =?us-ascii?Q?FwbFXsf0Buo+L67iKNLHwLNbZKEjRXYMQxZ/AlUgMqbXxP+3S7Vsr1KWqceX?= =?us-ascii?Q?cSLi3b8VwkiUNqVjUfbPtu0kJNFKi8dw+d68+VtdO2X6ncVR4zYePxshuU0o?= =?us-ascii?Q?SNco+bCcuNMDwb3wtj7NO05sB+ZCJZxntAyb8gjPUeUjmn7Aa0Q/is8YBH2V?= =?us-ascii?Q?7DfErgburjj57+OaiHRAoQ8BOdDsSFNQVhEniiD9ew/fAFWj61VS00+8886o?= =?us-ascii?Q?WnTTIF4m3Y1dSq9CHaBqjP9HLPRuUilrrK/jUnbXQRyZr3QNuKW+s7UztZWk?= =?us-ascii?Q?bWABB/4jbnTtOssmtRzvsVKl1DVeh9YJxXqDPy+nNl5c5PUotAR9Rs9F05N8?= =?us-ascii?Q?wAjcXoVLadW+VicEwLbnw0LbnXYl5i/zA/r1gL1grQFbayCNUsjjchmRjHxk?= =?us-ascii?Q?6SwKxnm9J5InFXudlm2TcKEJ+bPzV9xruDujHeoxHyXOg5MJbfjsMY9N2p5g?= =?us-ascii?Q?kbK+nhyzSKUfvXDJFZHrruEoyH3leB2J+7pvwisHrN0QBf+Qogr5FiAZZExT?= =?us-ascii?Q?ZrGFuN6KgBP7hjwEFnuykbDkUXzsMJtMraoVzyPHWu3YX7X20MCf9gEUPziv?= =?us-ascii?Q?sU5JTC98MP9VTpOV3c+yFfFn/zfLYHzhsWQY46o/VRZKfyCGbxFe7l4oWTld?= =?us-ascii?Q?NJ9ODvhsX2iFlDebWYCS0n0xj56yQWKO2Dh1dojmdHs9+hlZkud46zX5e860?= =?us-ascii?Q?SHKJVO+Yl43vEw3MOwiYTZ0pHiKa7R2eQUNnVK0cD5h2JfJUNcZ5QgKAa2gx?= =?us-ascii?Q?pMpGe3LSIrTSfrphebvXqWzocbfb3AX9OqPft28mtQSJiRapzxvNeHpIweZS?= =?us-ascii?Q?VOXoMNk6kfZnzS5cyZI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:19.4726 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e4bce6e7-6404-4cb0-4ea3-08de0a65dfd0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5746 Content-Type: text/plain; charset="utf-8" Non-atomic memory allocations from execmem and memory permission changes cannot be done under NMI context. Therefore, pages needed for ITS trampolines are "pre-allocated" before actual re-patching is done. The address for each unique trampoline is saved in the corresponding retpoline_site structure for use later during actual re-patching. Pre-allocation is only needed when ITS thunks were not being used but will be used after the re-patch. Otherwise we can re-use existing memory that has been allocated and configured. If ITS thunks are no longer required, they can be free'd after the re-patch has taken place. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 10 +++ arch/x86/kernel/alternative.c | 111 +++++++++++++++++++++++++++-- 2 files changed, 114 insertions(+), 7 deletions(-) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 00e60195d768..61ce8a4b1aa6 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -102,6 +102,13 @@ extern void reset_retpolines(s32 *start, s32 *end, str= uct module *mod); extern void reset_returns(s32 *start, s32 *end, struct module *mod); extern void reset_alternatives(struct alt_instr *start, struct alt_instr *= end, struct module *mod); +#ifdef CONFIG_MITIGATION_ITS +extern void its_prealloc(s32 *start, s32 *end, struct module *mod); +extern void its_free_all(struct module *mod); +#else +void its_prealloc(s32 *start, s32 *end, struct module *mod) {} +static __always_inline void its_free_all(struct module *mod) {} +#endif #endif =20 struct alt_site { @@ -112,6 +119,9 @@ struct alt_site { struct retpoline_site { u8 bytes[6]; u8 len; +#ifdef CONFIG_MITIGATION_ITS + u8 *its_thunk; +#endif } __packed; =20 extern void alternative_instructions(void); diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 5a543ffca10d..23bb3386ec5e 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -181,6 +181,11 @@ static void its_fini_core(void) { if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)) its_pages_protect(&its_pages); + + /* Need to keep the list of pages around in case we re-patch later. */ + if (IS_ENABLED(CONFIG_DYNAMIC_MITIGATIONS)) + return; + kfree(its_pages.pages); } =20 @@ -887,13 +892,22 @@ static int emit_call_track_retpoline(void *addr, stru= ct insn *insn, int reg, u8 } =20 #ifdef CONFIG_MITIGATION_ITS -static int emit_its_trampoline(void *addr, struct insn *insn, int reg, u8 = *bytes) +static int emit_its_trampoline(void *addr, struct insn *insn, int reg, u8 = *bytes, + struct retpoline_site *this_site) { u8 *thunk =3D __x86_indirect_its_thunk_array[reg]; - u8 *tmp =3D its_allocate_thunk(reg); + u8 *tmp; =20 - if (tmp) - thunk =3D tmp; + if (!this_site || !this_site->its_thunk) { + tmp =3D its_allocate_thunk(reg); + if (tmp) + thunk =3D tmp; + + if (this_site) + this_site->its_thunk =3D thunk; + } else { + thunk =3D this_site->its_thunk; + } =20 return __emit_trampoline(addr, insn, bytes, thunk, thunk); } @@ -952,7 +966,8 @@ static void prepend_nops(u8 *bytes, int curlen, int nee= dedlen) * * It also tries to inline spectre_v2=3Dretpoline,lfence when size permits. */ -static int patch_retpoline(void *addr, struct insn *insn, u8 *bytes) +static int patch_retpoline(void *addr, struct insn *insn, u8 *bytes, + struct retpoline_site *this_site) { retpoline_thunk_t *target; int reg, ret, i =3D 0; @@ -1016,7 +1031,7 @@ static int patch_retpoline(void *addr, struct insn *i= nsn, u8 *bytes) * lower-half of the cacheline. Such branches need ITS mitigation. */ if (cpu_wants_indirect_its_thunk_at((unsigned long)addr + i, reg)) - return emit_its_trampoline(addr, insn, reg, bytes); + return emit_its_trampoline(addr, insn, reg, bytes, this_site); #endif =20 ret =3D emit_indirect(op, reg, bytes + i, insn->length - i); @@ -1124,7 +1139,7 @@ void __init_or_module noinline apply_retpolines(s32 *= start, s32 *end, struct mod memcpy(save_site[idx].bytes, addr, insn.length); } =20 - len =3D patch_retpoline(addr, &insn, bytes); + len =3D patch_retpoline(addr, &insn, bytes, &save_site[idx]); if (len =3D=3D insn.length) { optimize_nops(addr, bytes, len); DUMP_BYTES(RETPOLINE, ((u8*)addr), len, "%px: orig: ", addr); @@ -3371,4 +3386,86 @@ void reset_alternatives(struct alt_instr *start, str= uct alt_instr *end, struct m text_poke_early(addr, sites[idx].pbytes, sites[idx].len); } } + +#ifdef CONFIG_MITIGATION_ITS +void its_prealloc(s32 *start, s32 *end, struct module *mod) +{ + s32 *s; + u32 idx =3D 0; + struct retpoline_site *sites; + + /* If its_page!=3DNULL it means that we already have ITS pages ready. */ + if (!boot_cpu_has(X86_FEATURE_INDIRECT_THUNK_ITS) || its_page) + return; + + if (!mod) + sites =3D retpoline_sites; + else + sites =3D mod->arch.retpoline_sites; + + if (WARN_ON(!sites)) + return; + + for (s =3D start; s < end; s++, idx++) { + void *addr =3D (void *)s + *s; + struct insn insn; + int ret; + u8 bytes[16]; + + if (!should_patch(addr, mod)) + continue; + + /* We are decoding the original (compile-time) instruction. */ + ret =3D insn_decode_kernel(&insn, sites[idx].bytes); + + if (WARN_ON_ONCE(ret < 0)) + continue; + + /* + * This function prepares for patching but doesn't actually + * change any kernel text. We are using it to allocate and + * prepare the its pages, which will be used later during + * re-patching. + */ + patch_retpoline(addr, &insn, bytes, &sites[idx]); + } +} + +/* Free all ITS pages if no longer needed. */ +void its_free_all(struct module *mod) +{ + int i; + int num_sites; + struct retpoline_site *sites; + struct its_array *pages; + + if (cpu_feature_enabled(X86_FEATURE_INDIRECT_THUNK_ITS)) + return; + + if (!mod) { + pages =3D &its_pages; + sites =3D retpoline_sites; + num_sites =3D num_retpoline_sites; + } else { + pages =3D &mod->arch.its_pages; + sites =3D mod->arch.retpoline_sites; + num_sites =3D mod->arch.num_retpoline_sites; + } + + for (i =3D 0; i < num_sites; i++) + sites[i].its_thunk =3D NULL; + + for (i =3D 0; i < pages->num; i++) { + void *page =3D pages->pages[i]; + + execmem_free(page); + } + + kfree(pages->pages); + its_offset =3D 0; + pages->pages =3D NULL; + pages->num =3D 0; + its_page =3D NULL; +} +#endif #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012049.outbound.protection.outlook.com [40.93.195.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 3C7B230EF6B for ; Mon, 13 Oct 2025 14:36:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366185; cv=fail; b=WpGATwoFX0sNY+qH4qg3KzYnvVbplC5tXNsxEtgWrZR4pgCDmdMapypeTFLgwn+QorYBdvZwetlkMyl3HqhZXhqivKczb4umJJEj/5cQfqLdtStQUaZHACu9AlC3kxzLlmAZOETgz5Klr1L/uwKj6NTIQBccuGhm8Ys1BugzYlg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366185; c=relaxed/simple; bh=GQs6Ai0LHBFzWVDbKMDCkjh8uWrqssfJL1guRval7h8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Msv5XxHzzAsH/o5OIKPuY22tLQrJoohhOjX8KOraio5IlEx3E/4MSsYFWWhJOscym+eSonKsi1T5aCvEcW7P+1FMhsEZJtq/TQ9miidhsyMkpx7ytja78EEE6Kz0vpHoO3ZEXCYqlX2rNgghL0DDX2rCAf4NWLvRdNhc2ihTr7Q= 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=LRILoqdf; arc=fail smtp.client-ip=40.93.195.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="LRILoqdf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eH6mqdAp1o5v18YC3mETqqXKklJ6iHawQ61jO/CHcnAtijFkPhGVkU3+lXAdSWGGroasOVmIpd9nQ9KlkpvmFHFv6XJyxAtxF2PoZOOqipSljn7dbx+IOSHiL7bGFqMxqJvlzVtqSc8YrIK33d0E8KKjnoCwgRObbGrcHMJ/xsEQhnqdp/i+3H7+2a9/6pwIAObwDIKwAskAV0x4WoEMRl4HFtjPjiSp36qwXNBB3Nj/NpBOVKI8NuOsZLSVM8AzLapvxoG5zRGGAskeleR9lADjyecRpntVyvNZoxrW7mJcMXiAZuQlAhFr1uuaHGyMSEErSXgCV5J9G/MiW5QH6A== 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=Bifw/FEkQL6wf/oTu+gbwZRXvA3PMjzYA1bQy+884Lo=; b=oF3E+Y9h/YzJTRF7OrHUP4tTIPxPYh2S4iUygCwllzRN/iX9ObDGizddIuYsVsb2Zp/rdCLbtIDSWO8DiPddOPap+eKyCzoVNDjmOKjun2KeVB3a6w/Zn2BeovTiKyq+JLcX6yOtK2+KJLXDkoK4fbp6DX0rIw5PqSbXpDaLKNxPfTd1bv+FZGgFQhdQ7fsN4PHbLSilh1nmWTtjvceLntmRvp2I53izIcFeD5qIw0AvUR8xH1Fcq5W8HatGHe/hcX53YIH2ToH0MdY1Wp7UmTgbELcyolFKmOuEpvzULC6wdwl7okiTT87KloxdjlEVowHDaoe6jAMs50ZnEPeagQ== 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=Bifw/FEkQL6wf/oTu+gbwZRXvA3PMjzYA1bQy+884Lo=; b=LRILoqdf8nGlp7psprPAZMNYlcLiY2Tf+tuSCUIhZUVcsJHK945HNKrC2tlg3Y4ctKxE3pAIz3TAb83GjwXIFLcYrczuiCHVh2/SPzzLtOL1XWiPiLchg3Oph0siff0ufEJ+iS7MJyr4HSeKYM8RdNKxNyy5GUoUv1C0ji1KlUc= Received: from MW4PR04CA0069.namprd04.prod.outlook.com (2603:10b6:303:6b::14) by LV3PR12MB9168.namprd12.prod.outlook.com (2603:10b6:408:19a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:20 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::1) by MW4PR04CA0069.outlook.office365.com (2603:10b6:303:6b::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:20 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:53 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 47/56] x86/module: Add ITS re-patch support for modules Date: Mon, 13 Oct 2025 09:34:35 -0500 Message-ID: <20251013143444.3999-48-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|LV3PR12MB9168:EE_ X-MS-Office365-Filtering-Correlation-Id: 40ea90a2-c58c-4d9e-68bc-08de0a65e036 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SN/SZFMCgVL9dxIRhE9oOqeVRpR28ade55jDZXyCYaEkVlqMhYdHnxRxnIcJ?= =?us-ascii?Q?Nz78H4drVNnk0knRZujvzGmJzj9cbxLue4g57OO9TweQkfkd0EpSGqE/c+sg?= =?us-ascii?Q?kPBJAtcrFhegkE78ClDFV5rPLJ6BfvQMpPTZRgM5KZ/ZvelPjLxHgnUMxebF?= =?us-ascii?Q?430cHcVatcOk7H9Tb4vtAbvKKEJDoB8IhTeOsPtsYB5Wgi5pXsloRgrHP+2m?= =?us-ascii?Q?NhNjlvkbbjAjfZbkXCtVKrOShKeqHRlhsACwFaXB/x7kKsR3rhVVDlLN/cIt?= =?us-ascii?Q?4c8HKVt7PU9mbZ5W4bVjQngIqns/ms3uf+lIjvQY8KbKMlvUCvFHLb5ydqBv?= =?us-ascii?Q?3ECqH2QxSlfnY1BLMjrcnTx3qPsmssVddYGGGIRtPvsHEs8aMdrSaONO0d7q?= =?us-ascii?Q?VAJMaDro0cK/qz0hfhIT0CFMTOii1tel1dBOBXZ7232n2mWGFPlfbTCAUIS5?= =?us-ascii?Q?A6av9u8LmzmfgXQTZVilA3mOK5S4pi3g24TGaFxVOdQfjxXxxmh4q/qCMhlQ?= =?us-ascii?Q?P2D/9yYZz1NcQlydASo3wB5sYTYS6sUqlxd9eAwhpnZTuKGTQgmevh2Vw2u9?= =?us-ascii?Q?lKTOoPHLAfM2irnacfbRpGwlzoK6rvcEsMGL5yCodsyl6Dj10anXajbBTlKN?= =?us-ascii?Q?JJ+bv+9qMMN8ofRaUouANOpuYOClYBIwG3sYKkfCOHrhTMjTNhqz0cqWm50g?= =?us-ascii?Q?rg4oNOqJfe/wCAFnfLONLe7G05OgadkrZ0g5j380dJV1FwqVZ6aY3QGFHwC5?= =?us-ascii?Q?s1rpDKY+PaSx+QrAc1AnldwwsabNLxq8lduoRLmheIq1k4oOW90ciHXUZHpI?= =?us-ascii?Q?9Vtk0ZxDxg2Q0IL7i6ZFTVwgegXa/1+E2SET5NxHQxQQS23icJn3LV2qLGM9?= =?us-ascii?Q?QLxXj6e9WL7y3189ztlhbt8VpLe+akDUwPFodYB1QsT9c5crz3WjduC23AeV?= =?us-ascii?Q?gFjpk85Setj2f7FPKhHWsnGFHs0i5f2MBfqyBEBpr3eb3UtCTdX7nAxhK21U?= =?us-ascii?Q?UIUfo+4HV1O+Ex0t6Tas/EpvZ+UhXE43MLa2cTgIYnDY/9izqWYBUCWlJ2cO?= =?us-ascii?Q?fqpvYWrKjZQxNKmEgrbIM9eQaw9T+EwWtsQwDRVuvkmjiBFeWnMrmb+P3JLP?= =?us-ascii?Q?NObEptRB/eZZlU3PlvfqwOR+khdJTd1BJSYwwqm6cw7hYUaBLPfCfan2moyt?= =?us-ascii?Q?84d3DbnC1itx6/xEGVLPo+R3cZR6COYkw5Slz519WoplwfFxRID5pVa87hbF?= =?us-ascii?Q?yd1XDtpzgGdPKHWs1BYcdSLNGI5X5LVRB3+Qk9V8c7uN2pHeE9YV968oLa3/?= =?us-ascii?Q?8hLPWS9AeaPNbZWM5VaK9BSrNZUUOZLPo2/pDHLj9GpKTdO64sdTpS3iC3Nh?= =?us-ascii?Q?KQjpZK57EVRGitzGEU1d61wNe3nlR3TvotKnBKz/XQxOmxh2t9KQwyM9G6wR?= =?us-ascii?Q?hMeEC4dyPFyvDKFDcTIIohU8loXYmLawerGd8wK5N5MG/2GJa+ClKUCK7FJJ?= =?us-ascii?Q?4v+k8M2nfQ3fdDo8tX1+eohSlVL+eZSsnhbiz+c8p311sj+DQEU59VKvWwo+?= =?us-ascii?Q?G64CrXQ5q7C5c5Rv+TQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:20.1408 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 40ea90a2-c58c-4d9e-68bc-08de0a65e036 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9168 Content-Type: text/plain; charset="utf-8" When re-patching modules, call the appropriate functions related to ITS mitigation support. The ITS mitigation is unique because it requires memory operations that are not possible under NMI context. Signed-off-by: David Kaplan --- arch/x86/kernel/module.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index b6beb2b3469c..12a934755097 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c @@ -390,4 +390,36 @@ void arch_module_update_alternatives(struct module *mo= d) apply_alternatives(aseg, aseg + alt->sh_size, mod); } } + +void arch_module_pre_update_alternatives(struct module *mod) +{ + const Elf_Ehdr *hdr; + const Elf_Shdr *sechdrs; + const Elf_Shdr *s; + char *secstrings; + + if (!mod->klp_info) { + pr_warn("No module livepatch info, unable to update alternatives\n"); + return; + } + + hdr =3D &mod->klp_info->hdr; + sechdrs =3D mod->klp_info->sechdrs; + secstrings =3D mod->klp_info->secstrings; + + for (s =3D sechdrs; s < sechdrs + hdr->e_shnum; s++) { + if (!strcmp(".retpoline_sites", secstrings + s->sh_name)) { + void *rseg =3D (void *)s->sh_addr; + + its_init_mod(mod); + its_prealloc(rseg, rseg + s->sh_size, mod); + its_fini_mod(mod); + } + } +} + +void arch_module_post_update_alternatives(struct module *mod) +{ + its_free_all(mod); +} #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010039.outbound.protection.outlook.com [40.93.198.39]) (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 38FF630EF81 for ; Mon, 13 Oct 2025 14:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366187; cv=fail; b=EzK6ZIMia9pMj412PGT3LCz83m9bt53d5OtuVcCuVKpjP/aYKeChTiFJvBtL8V3y5pYmN6vOTclo7JJnXIin0QUBm7Iv3nNF7qB/6TnvU3kVFol2Vs5N5xMEfFtbUSECk2oFUESlsQb+9y40TZaCMfAXYlgaK7CJ2vSckM3iSh4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366187; c=relaxed/simple; bh=ZItGOC+JmmgPLYYN3t8qhXMMknKhd3ursZn9pLt8/6Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=k8bAALBCONu/8/Ps4y/00ZLvp0/Gxvs9/y46A+zxN9VCLgsJKRKOw7I2tliwHe6S9Um8WV3xTXWMG/WgpTtiF2sqQYv7+RecFDb7m8p0tVPn766hF6pLn9imiCBVB/EwUt21pErcfe9GSvgg6yiujTypBTvoBtHI9FQKDeAxDk4= 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=wgl71tlf; arc=fail smtp.client-ip=40.93.198.39 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="wgl71tlf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pJoPKhzXVUVyVpwHRNsKdKTTFbOv+pA7XRN0Ne9YsOS90nGV9aPbUVmPItOdeC9+vuue00144Y0Zt2DvidQoYUqb2bOBnoJYjj+6+xZplZgT8Vkgt3WErWUs6cA6gscuKz8376OAJJZa9Fa0U641w/mO7wtxo0avsuAisngz6I0k88uXA8ZLbJR3zWO0ZQhMpXRi2OwfN/B1QvPGCjocK9x0bO2mtrSebKn6CeTkNqlYi/bg/GNmp+Q62fL5xqpFHexA4x4kmgYuZQArR8G3+pzqhrtEm4coOK9+Jqiz1wp0xvLU7mqXWJQHq6eiT8vqos/f0m6foC591i4wt3niCA== 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=uKzjhwLWqYd1+ZZVw8t32y5b+d5dPjGF1pxOpwzThyw=; b=k+31ArMLLoqY8kjYHQPLv2u/qvrDEwmCEA68UDQXFp7abPlHSSPEOgAI1cJ7GG8gA2iOBm2WbTNuHRpaxwQVFgHMa3K6h2t+9Mu3XSi+XglJl3H9ur/IfkMhmj1sdzhKnWuGKyZJFOErhA50L2blR4gunuZ1fT8sM/6kqYtYU4i11CRjUFsUc35Cm1o4XO8+tjw5mdAsVNVdIxwBir0CkzoG2zeq8JNHcq8/Nj95//ZhVo0HacnQkEhJ4F/LO0jlBG1xzssnFNHQP/DN9Ly5KR+R/6TxOfOuJdfM6dWOaIloxoA5Pm2VcubTxpLGgiHQxjDZi06+tsj7Fiw6wzRA2Q== 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=uKzjhwLWqYd1+ZZVw8t32y5b+d5dPjGF1pxOpwzThyw=; b=wgl71tlfTZ67NG1oJ5Me2djDYaOeTBwuXG0MCHllIgOiF/U8UtnfKRbkdff6c42AHKUVSsWUhk2jTjhtL+G9Cs4zjNumnskhqHFFWQGylt0ap+GmauchrlokcE8zbpzfXoCmHO4aNRG38pkICiYPyxrwjnAI4rePF2JC/9eqeQ8= Received: from BYAPR07CA0044.namprd07.prod.outlook.com (2603:10b6:a03:60::21) by DS7PR12MB6024.namprd12.prod.outlook.com (2603:10b6:8:84::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:21 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::3c) by BYAPR07CA0044.outlook.office365.com (2603:10b6:a03:60::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:20 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:53 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 48/56] x86/bugs: Move code for updating speculation MSRs Date: Mon, 13 Oct 2025 09:34:36 -0500 Message-ID: <20251013143444.3999-49-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|DS7PR12MB6024:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ea38052-f5dd-488e-9739-08de0a65e094 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?bG7NKOnjs8W6111+IsnsB8tC9i/+lELia4iAP+ek+oIKDWz37z6gif49DmmA?= =?us-ascii?Q?xjN7qzXyH9pt7PmJAB84fSYo0glLPDj06BWek+S12sf1rn1MS1vwBEKa6zSJ?= =?us-ascii?Q?YVPMISYDqO7xT4DfzmImmNh4rDG0/gdB6YKre0PtgCkRGwVn1G9/keqJpOCe?= =?us-ascii?Q?5peKqGe07JDKOx01hB/wjQpl5evDY5xFbUD1LmkFJH1rM8clipj0efubmdAm?= =?us-ascii?Q?Mj0FALxSxR5LA6eLtqS3Yv3wb80Dxwhei8NJtiba3MIgNzKOQzKvWf7atfzJ?= =?us-ascii?Q?uNfaCgusFnVWFR275ADwrKorcHmNO3gbp/EpnRoA7aMKhzbHv8fxiZxIV9on?= =?us-ascii?Q?IOATiRY7qcdQtc9xYRFaVtheE9m6Zd8aNUU56UyIxwjneqYVYvKkt6M1Xocl?= =?us-ascii?Q?phHEqtLhCeyQUhJ4mIYpDRgDKq5c/av5f55yFwkSq+rbby72Cl+BpAyQcAYt?= =?us-ascii?Q?sZhommIvK+38ZG6CaI+funKVTalM1fb+lGDUgFJMujUtMHQ3xtun0mcxRydp?= =?us-ascii?Q?+G8fsvwDFpEl/eUsrCFkrGdbYlzjxZl2ExzNw5IB8neuoxN+OjYcgAz5MA+U?= =?us-ascii?Q?J3C6WdjHv6GBl8bk2wKkI203zNYt49aupkaWl+Aj1+9dfNtDEBPitFUgdvvh?= =?us-ascii?Q?uJvrv2FeyeOPAVXP1Ygf+zCMOafnRnmvmuuf0JRKWWaM1jPOGS/RSUSgntlm?= =?us-ascii?Q?SjnVbwgRwmBBfG1wK6gVTxTPILOEARqqIFz7DO2PKlonLprpU30n12My1Jw8?= =?us-ascii?Q?67SMfkvIRBh0XQMPN9QmvT0oDquNpsK+Z2CcGSvQKyYxxfzULOqCZmSbVv/O?= =?us-ascii?Q?xml2ku3B9jyrmzEhKAif9g332LxHPvCVTsJpr8q2GrImb1ELmWu1dTflmoPn?= =?us-ascii?Q?iQ6BvsruVgf1hYkRuQ202DiMiaGpm239fH07YKtO0mhEIG43IrD+SUKxzOXr?= =?us-ascii?Q?+CpIuVumsCRJoKX3wN0EuVmsmAaH8aMujOB9lVqSWI8iQ7Rc1el9hn7c7vKa?= =?us-ascii?Q?6D1iqxVU5trMTNwELtdAT1PpE0vPLo+aftHR8iypcfQQzlwmPNdN6eHD2MeJ?= =?us-ascii?Q?5uv2XcudKNXhIv6FeVS3hm+pgb6uTCwLxSScmBGJcvuNMTO3gHjJv4dE3BC1?= =?us-ascii?Q?rUnALymGZRQEFW7x3n79v2DldpDO/+FwFPCCHrktQzsw61cbXTHbHgkNF0gx?= =?us-ascii?Q?bxVo+dF3ORdMJflN7LQ7D6ZNsLVL0pvUo3wwDUS2bB462wjcsuI3cVJgaS0u?= =?us-ascii?Q?OYx8cwTUEZp6zLUrDoTqR2UybtfsBIfbIOWufCACAVgMaFjb7djXwIzNSAcN?= =?us-ascii?Q?frIJTskPQBl9VkY/wnqDzVtBN1rcDNho4lKRvHUfcZCz7v4o0lINNqZBzkzS?= =?us-ascii?Q?GM+gk1cQPy7E3bG6acyYSCt4pUnZF1ZeNUogpoPyr8lqx9G67gGDp0nWDugp?= =?us-ascii?Q?vxz1cWWVVSheL7OhPyDRnwe5fDi1MZ4UOOPL/N2KnSVtk80hRcZSVum/cfO6?= =?us-ascii?Q?bcKwm9ds8mpFss40X5diAYwUsF0TrOxMep/KlXs0CGIvzXc00Bbm83Nk2UaF?= =?us-ascii?Q?qv5AwVCfx0+Nx3okdfw=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:20.7592 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea38052-f5dd-488e-9739-08de0a65e094 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6024 Content-Type: text/plain; charset="utf-8" Move the code for updating speculation related MSRs to bugs.c. Besides belonging more naturally there, this allows for making the 3 functions it calls static. Also this prepares the code for when re-patching will also need to call this same routine. No functional change. Signed-off-by: David Kaplan --- arch/x86/include/asm/bugs.h | 1 + arch/x86/kernel/cpu/bugs.c | 14 +++++++++++--- arch/x86/kernel/cpu/common.c | 6 +----- arch/x86/kernel/cpu/cpu.h | 4 ---- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/arch/x86/include/asm/bugs.h b/arch/x86/include/asm/bugs.h index e43b9412645e..2e1a7d282e51 100644 --- a/arch/x86/include/asm/bugs.h +++ b/arch/x86/include/asm/bugs.h @@ -12,5 +12,6 @@ static inline int ppro_with_ram_bug(void) { return 0; } =20 extern void cpu_bugs_smt_update(void); void arch_cpu_reset_mitigations(void); +void cpu_bugs_update_speculation_msrs(void); =20 #endif /* _ASM_X86_BUGS_H */ diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 06061bcb08b8..2f82261d033d 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -925,7 +925,7 @@ static const char * const srbds_strings[] =3D { =20 static bool srbds_off; =20 -void update_srbds_msr(void) +static void update_srbds_msr(void) { u64 mcu_ctrl; =20 @@ -1085,7 +1085,7 @@ bool gds_ucode_mitigated(void) } EXPORT_SYMBOL_GPL(gds_ucode_mitigated); =20 -void update_gds_msr(void) +static void update_gds_msr(void) { u64 mcu_ctrl_after; u64 mcu_ctrl; @@ -3014,7 +3014,7 @@ int arch_prctl_spec_ctrl_get(struct task_struct *task= , unsigned long which) } } =20 -void x86_spec_ctrl_setup_ap(void) +static void x86_spec_ctrl_setup_ap(void) { if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL)) update_spec_ctrl(x86_spec_ctrl_base); @@ -4010,3 +4010,11 @@ void arch_cpu_reset_mitigations(void) vmscape_reset_mitigation(); } #endif + +void cpu_bugs_update_speculation_msrs(void) +{ + x86_spec_ctrl_setup_ap(); + update_srbds_msr(); + if (boot_cpu_has_bug(X86_BUG_GDS)) + update_gds_msr(); +} diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index c7d3512914ca..c37ff92aaec2 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -2138,11 +2138,7 @@ void identify_secondary_cpu(unsigned int cpu) #ifdef CONFIG_X86_32 enable_sep_cpu(); #endif - x86_spec_ctrl_setup_ap(); - update_srbds_msr(); - if (boot_cpu_has_bug(X86_BUG_GDS)) - update_gds_msr(); - + cpu_bugs_update_speculation_msrs(); tsx_ap_init(); c->initialized =3D true; } diff --git a/arch/x86/kernel/cpu/cpu.h b/arch/x86/kernel/cpu/cpu.h index bc38b2d56f26..48ecc6dbaaa1 100644 --- a/arch/x86/kernel/cpu/cpu.h +++ b/arch/x86/kernel/cpu/cpu.h @@ -87,10 +87,6 @@ static inline struct amd_northbridge *amd_init_l3_cache(= int index) unsigned int aperfmperf_get_khz(int cpu); void cpu_select_mitigations(void); =20 -extern void x86_spec_ctrl_setup_ap(void); -extern void update_srbds_msr(void); -extern void update_gds_msr(void); - extern enum spectre_v2_mitigation spectre_v2_enabled; =20 static inline bool spectre_v2_in_eibrs_mode(enum spectre_v2_mitigation mod= e) --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010007.outbound.protection.outlook.com [52.101.56.7]) (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 72875309EFB for ; Mon, 13 Oct 2025 14:36:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366189; cv=fail; b=YbqWy/0IVVmlMBDpYarnIKBrq/S0qzWol0cSqsKhpu0nRmDqtlHeMwpyjOT2i1SFNfZ5GzwM1JgkoUn1aJ5I9pdXfQl2kwV2ttx13Fr6DG+1knH2Hf8aS35O/1FGtACYHfjrpgIOqvJxK7oWKvoYQ8hoFt43fJ5kl2NNesFIH4M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366189; c=relaxed/simple; bh=TEH1i6cPVF03Zi0dHqEq7/oiGJ4iembBJTfRrHoKajk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CVI08IOCKbLMwZuizzSUQ39fvbMw1w48eFjp+RXhFaaip/UARTgFbzlusSucIfbZAbKrie9tUXAMMt+hffthJKHJj3cPLAaMQ3AZ+u3+uAnWHwYdml00MxtARkUiPxXclusakfRM4Dalg1n5npLllVy4fGudFAzOyAk82l4E0C8= 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=RHHBw3rR; arc=fail smtp.client-ip=52.101.56.7 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="RHHBw3rR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SI5i3HMTfgDCGXXldFjNGDCwmrJMQRS2MmxQnj7wBL6WU6z+4iEHpoz1wtC8PHiBtFDYXNCmO12rYCtfQC+QyzdVPFAau7i6YMgp2Wr/cwdbIUknUDhuE0XUrSbi1sBLHDtntgJXCJhttPFXP32hay7LkVEXfPrVbsoGOLj/XsrLxQ5tWJXT5016dp513B5biAc/PktjtNiFHnNJya1o9YZoUQvVjO1ax30gbmvd597sWd9DkiMASvFLQVp1cylngFNBM0JORgJA7xAZPAaj0iIZETazXrUYFv/U7EKlRTg4yHu61DR9I01jXygGndX4k7tSi+Db14+6TuCqMo3t1Q== 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=bJNepUgWWTzX60xRF+GIMxuLG7tMe5tqtfgRz0WLz6k=; b=TFptmnVpDyB2v3EY8WYGgywny+o+J/9gL1gQftlrMosNcypRzLTbTh8T6htn3vFL9uhTDGEGy+QTGU94Gk0NFv0RURA9Mb13fl9Pgs2Lg0adBysVC2C41oP6bHilJTzvMKfmQMEHGaBBFIOZ4npmzN1x0KDahA2yN9vTDbfUE/LDszIEu9ncTw1YD/HLKy/lOVrcb4Equm3YkO6MCJKuFH2sE0hNS5KYzga0F9CmznOK+Ys3xVSD8mOC6Y4lShpljlnrdJRIi+l7g/FyGK2zYFBBs0JIR23/ILcYZWd2pVaZ68qA57c8g9495lCS+w14XpnlnVF2rh6NXlwT2fsOVQ== 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=bJNepUgWWTzX60xRF+GIMxuLG7tMe5tqtfgRz0WLz6k=; b=RHHBw3rRISotzUTxcZNXkEvK44/h2kn2PakIQ6JPs7kQkVtnjrcwJHNmNlJW3Dfm6g+lK+ph3Z4Q73mZcDHveIFI22iZ6+faPrs7q3KQi11vZbp6dl2sabGEoPLSnZCRcZ12tLEB13nx66QYaAG/asgeeIni2shRTJpnEWomnZA= Received: from MW4PR04CA0063.namprd04.prod.outlook.com (2603:10b6:303:6b::8) by SA1PR12MB5616.namprd12.prod.outlook.com (2603:10b6:806:22a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:21 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::e1) by MW4PR04CA0063.outlook.office365.com (2603:10b6:303:6b::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:21 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:54 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 49/56] x86/fpu: Qualify warning in os_xsave Date: Mon, 13 Oct 2025 09:34:37 -0500 Message-ID: <20251013143444.3999-50-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|SA1PR12MB5616:EE_ X-MS-Office365-Filtering-Correlation-Id: e6aa223a-065d-4391-930f-08de0a65e0e4 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?t5XZ06WAqKoJQrN91jmrjvE/Jg/QKmPm1JUjyynzCuMfVYbbeJpINe4Lp0Pv?= =?us-ascii?Q?K13WGkjEDxlit7WKgdceSGxr2z1dwoOVo75KRjG56Rjn+Py8B5lbaXDWOpHy?= =?us-ascii?Q?twUr9wdo616k9JNdhAFEkl/5Ox4LD7E2DhfGsc2Nwt9Uz6WkvWUgMrMqNyoZ?= =?us-ascii?Q?8CuMrFcR6+gahfLYYNngfjsDhx40b5pax2Afmb6/OBVfI7yaVqlC0BKn8X8Z?= =?us-ascii?Q?BNsPTZ39Ta8dG5jiQ1eVQ4oOQ9YEaO+PkVaoKSkfm0yyYPxmqnKp09CqZZd7?= =?us-ascii?Q?nQyh7kpxuA0PZ53uANYw0ndPYgkLqcC1tKm8P4bIzboNP5ZN9FcyRmngGs8g?= =?us-ascii?Q?3ZYK8wWMOh1EIVXtN5ykVYXz/O5RzhSMkyRaUUCgOzMPEE4SGtOX23/2mBJM?= =?us-ascii?Q?RGtnENF2Ylc7YPotZAEYpCeyz/2aozWo3wBJjSdEQD6mP6hlp5Qidd0PqUn2?= =?us-ascii?Q?rfUNk76AS9m8f8gQoly2f3fa6CCKRDzlNWh9xl1EWazAdpOuy6NEqLaFbPbg?= =?us-ascii?Q?L235CdBqepZPg4fzw0jLOokTCdmuQwPIsVYUU6xOzBhvoUQm6jeF9w77XmqX?= =?us-ascii?Q?Ky0ZgPexWLGV4+g0oi7uEyZj+CZ92FyBjNVqkaqXXSIor3cMgdqwyWOuoAeo?= =?us-ascii?Q?5PhsrdwC2xuSbQ0QrhOqdzHDwIF6dnD7ID2XeF3IYS1+5oiWbpKnMrUY5IwV?= =?us-ascii?Q?mM7kvSrkWwh/n8GTdTJnwP3/3/U6B3xPjYyzBsDvcRWTXNJdeBdkF+icjW8w?= =?us-ascii?Q?1C9wMYe+m/b+77TTHG6v1JYH4c4X97EM5GVxHRERtgjbYpEn+P6PTHEeRMBZ?= =?us-ascii?Q?UHAdtKaZNN2/MAYaVteZ9oBttpwMcXsdlWjml5Hgi1HatDcpdmEbbaJJ9F48?= =?us-ascii?Q?0/+8TP/x+J4AvQkNGFTj2ZYrZyXR8HG1ZojKE0dx8uvXG0gx9+HRxJgpw3hp?= =?us-ascii?Q?G7xg2IMOBfv0I5Kt5VOUVN2hU7fG7hGoWLLtk5v0+kM3W3UcrLUUofucK2xd?= =?us-ascii?Q?24llqb+QT5df55JYcWF0nzsgiKC0KVUP8pZ4zoubJCM3bEf2V4ww24ESxPd1?= =?us-ascii?Q?YxmSPW40UpG05HGR20mdst9/4kwXDrkzBIQ8IeIQBlqaHfHGbyvwL2t9kpbR?= =?us-ascii?Q?Dnk005dN0DtWlNAba8xBLq/mSGTQYCKgD7nUzwJY64oe4XLIuTtk2jNcPF6U?= =?us-ascii?Q?KVMf28dxrS2Lx5BUA6Jtmag3peNdbIqVINn0FKuoYMJd9GxqP3WWM/+QwMxt?= =?us-ascii?Q?4bAL1LYX7/gV2tQO7/raxxb8xFRYi7lUAa1U0o7Eq9o+Je/H453CC34hAzgU?= =?us-ascii?Q?FWsGI/QdrxiQAZ4exBFrV784XcbNnHV0mQCnu4MLHNo3I7CBM1fjh377G76a?= =?us-ascii?Q?fK24UG76j45luMVH703ZZogkvuTmSuSKCzaXLw6vL0AM4d/a0bGKMBTXykTc?= =?us-ascii?Q?+/P+4GyuJEPbzv7RF0UZK+ofUcjCPObJbtR2f8neejoq35+7lserLEi4Znpz?= =?us-ascii?Q?UtBoayFriqRTIX0V37gobHzy/pzGBxymAUWUBFXIaHJEhuGzutCAnTWOWTcr?= =?us-ascii?Q?JDlxM5u+Q+66l/hv3O4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:21.2835 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6aa223a-065d-4391-930f-08de0a65e0e4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB5616 Content-Type: text/plain; charset="utf-8" The warning about using FPU before alternatives are patched is only relevant during boot. Ignore the warning unless the system is booting. This suppresses the erroneous warning that can occur during alternative re-patching at runtime. Signed-off-by: David Kaplan --- arch/x86/kernel/fpu/xstate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h index 52ce19289989..924552a20db1 100644 --- a/arch/x86/kernel/fpu/xstate.h +++ b/arch/x86/kernel/fpu/xstate.h @@ -220,7 +220,7 @@ static inline void os_xsave(struct fpstate *fpstate) u32 hmask =3D mask >> 32; int err; =20 - WARN_ON_FPU(!alternatives_patched); + WARN_ON_FPU(!alternatives_patched && system_state =3D=3D SYSTEM_BOOTING); xfd_validate_state(fpstate, mask, false); =20 XSTATE_XSAVE(&fpstate->regs.xsave, lmask, hmask, err); --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013071.outbound.protection.outlook.com [40.107.201.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 2DC6E30F557 for ; Mon, 13 Oct 2025 14:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; cv=fail; b=qfFSRG0OP421zKnVc6yf5DvLBCzNDg/Es8WtBLUp0l9gM4FSB2jK3jHpZkbdi4JHMLLEZtTLZ34xFW1VpWObTkTdqRw4piBanb8ChkKzEo3DG9fNYgkApS3SW6ok84pY/ARwgZwsklBKJod1vc0/HGDLbREs2JX5mTtW8V5urSk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; c=relaxed/simple; bh=y/X1C1gge8NrTtSP/SBWDtpXN7TKdqBc1xiu59d90gQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CQJUsuKB45+4TUHFG9o21Qdz8Eeccn/OkQUc1PK/rR5M7VGnIv3ale5ivm9VyHT6ZLnZkSlc/R44YP3uPRaUmE5YaQAgVdo6jEijjO4UrkkLAIJh117Yb91TCmnkfzlWxrZlYBXhEJTSh9coxeAtBX8WSiRJW1bEtKjIWiLqmcU= 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=VV+uPGD+; arc=fail smtp.client-ip=40.107.201.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="VV+uPGD+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DZ6mR8Rl2G6D9poJn9rvGru7nwilnXJjcDzQ/nNg1LnVrfAg2HjEfj7rEjShFZ/08AwvRYpxuo8hy28+fBuIJKwQAtMEekqhW+VSLMfNUqbcNhmvn9foAY1HIxTceoTE4Gr94UdRuUuP5r8U4pRE6pzz46WvGyjgeAbpY8nJGJ3yfW4AyFpKzT94RcKcofmRPHz4HvMhXCKQX7lyF+UMW/6FadIRA969uOvkTa77oGR79+57rA6nFQTq2gknVe32jmrhcBUTUETzAjjE12Vw4gE/JyHIv2ndpD27vXBvemCu/nPQEt2eWi0vkfI8BZfis8UtSqnRM7cdEC4BHCCZvw== 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=ra9pd1e1FAa+c7ZerVRsByviT/+mN8yismsAEmZKdwQ=; b=KHrWp2I4hvUOPUYyyAfLSafkUPEUo3jk9rfnWk9BLPDR5ItbBwylsHg2lM9grpaLbxllLEnkbY7Gvbj0Mcv6myxNfJwk8TKnYTH6MvaDoUNvbzpxH2EuKd3kofjYa6ypiKbHZlcXv9ZeHEIM91tE7uFPzvc1Ky5yVLWlV9/460QLtU2rTfJsTyOhR5wBmaXBbPIKZg/+MEYXDPpmXSd0gQzVTlFkd2I/0ZKL6yR6Gr2q/HddhTsB/H+Ba2vdaLHWuscZHmJ/BeIOuYBYkpQop09W+Yz+1Swz2qFY7Y5FtirVYOAgXjjWFWqABYYcKYXe5urxyH5bMs0zF0qJGgE58g== 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=ra9pd1e1FAa+c7ZerVRsByviT/+mN8yismsAEmZKdwQ=; b=VV+uPGD+Pa6DuRzxVIWttP8njJwkFgcytqhve64iFWIrR1jA9kaWyzN4+TJKakPwBMplwpCmlWH263pwFwm1BvOzOLijKHi0jwrENquBRoMZq8B9a9ztI9e2rwwdc6r4Q5qed7XFp7X2i4xUi3ucuQ4c/HIsFYeGZj99P5D4h9Q= Received: from BYAPR07CA0044.namprd07.prod.outlook.com (2603:10b6:a03:60::21) by DS0PR12MB8270.namprd12.prod.outlook.com (2603:10b6:8:fe::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:22 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::c3) by BYAPR07CA0044.outlook.office365.com (2603:10b6:a03:60::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:21 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:55 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 50/56] x86/alternative: Add re-patch support Date: Mon, 13 Oct 2025 09:34:38 -0500 Message-ID: <20251013143444.3999-51-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|DS0PR12MB8270:EE_ X-MS-Office365-Filtering-Correlation-Id: 445a28f7-e527-44af-be9c-08de0a65e118 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?n4bf5bUbz1w0C2Kq41PRRilUpoRHC4FqAofCCfB7rxSAmsorF3UzgRxUdxG+?= =?us-ascii?Q?UDE1TT188b9f2eyu3o5mUY9eeWqVh2xy4GCnqkKlgKrWYY1VNGvVTEz125t1?= =?us-ascii?Q?hOSSv14jvlnFU4AR1uvJYmFkSilj0g8KYwuwPBSI+P31AYP8OFzkofQBWe9+?= =?us-ascii?Q?12FTS+PuMF60rlCPCHPYy4w1gWVuCnTPZwFWV/d2HmU+Nel2RaWc3XKfNu+f?= =?us-ascii?Q?QraUj21yTyvZbmqhc0ys6LXyEPeR5puqrx8SrF5eSDDxReXx3W3KoqTtevws?= =?us-ascii?Q?gvFRGy1JZUbiI2mGWKS13HBH2BKIkteOppKNBYw468azMXgmaIxNV2C/p4Py?= =?us-ascii?Q?vvp0kAWUhU2gaXyNMLboQTbt/Ch+r0qVw2lUgTG/3XNuRE+BYXFjP9jcJkZD?= =?us-ascii?Q?v2hDIeEa1RstbLze9hlbe0Km90zCK+U5ZnB2MOR+c5ucn0z6nm4Pi0izB3+u?= =?us-ascii?Q?88gfT74QUQI5n9cgic12fzPPhmihisq+Qwz9nWEMj+mX0fZ8xPYyp7FGMAKy?= =?us-ascii?Q?xwiN43IkguJykdGlw9+UWBOeiVt0g2shKiEu+/zj0SwnwbInaeKGPcvT89p7?= =?us-ascii?Q?6BB9QcWdXHGNa0SarfB7fNCFr+WLDgzasT/7IjQNNw/pbS4XHfQqljVgTS6P?= =?us-ascii?Q?DLUX/QbU0S2qwOp6Wfx1JzPmlFj/RUbZKyFYkhEfD2MT6vT0cHNW5zUmqvSN?= =?us-ascii?Q?1IAonwfGKhuRe2XfVINsZ428rXh26lVREn+T/RWLh72fWhC9XMfvnv1U1+nl?= =?us-ascii?Q?gSZlcrtYbDu97mRhFyAPDDRBpB4HBM3UD+G8HFyxtHzn3bF6PjAB+BqjlpcD?= =?us-ascii?Q?90Gp3kdpQNXNsB9jUsNLHLXmMC2RILk3JLgkjeYPNPvv2JraJjvywuSxmtFm?= =?us-ascii?Q?yyBMZavLKS/NerrYF59ReSHjmZLrcR1TsfmsJ00/wa8cb2AOA2I5qsz26uBV?= =?us-ascii?Q?Wzg8sv8XWbN5HM/HBH8tZHX/pXixW+V6miM1BWLvCtZLQsT4lm77yVSSbdat?= =?us-ascii?Q?xE3+CGbq1SJuy7jUta0SM1+iHHRhmreSrARA4fvtOGxqUhOFPXeVAuyEWDsW?= =?us-ascii?Q?dU/7Q/fgHn1uVKdvw7d1RM4ptfPy280iXxX2/WkIw6ZNYbSqoh0LoMazv7hR?= =?us-ascii?Q?ui0dsylbi9muTKm2lPgq9vilEJujg3L8gGrQhl1mvp0EnQdVXktnHx4B9F/X?= =?us-ascii?Q?R5rCRHQ6yieWB90eeQxFnTuUdW4N2jdBqYkBvtYG+A0dlXld1pVjVkM6IaNT?= =?us-ascii?Q?fvWJR9fjeU98frk1RqRL/gdrknsrRQvoF/l36iIRVXXpRun2Eb+PdGhCDUc8?= =?us-ascii?Q?2+CSkN2lPOfcZwKKOABeMHDnvla9l09awPxqca/vfHGLwFJj+zPFn92O+7Bt?= =?us-ascii?Q?Cb+JqYKH2y+jZJGpKU/oWyRVAAf95VU+uEyA36G2ygRI5doTOCCVRfZ4lzTn?= =?us-ascii?Q?LEAZoiWAcsdLvXYM+uPuk5MIZLWIO9zAa8ZZXif8jtV03tvInPgN0TDwNegf?= =?us-ascii?Q?orPFPl58hOSywRXAA4yE5Rf+DJO8HxK0sd6MM3XAl2JSe71JCRCo4eZ2xi3m?= =?us-ascii?Q?2pXPQ35Gn7IuokGoeW0=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:21.6257 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 445a28f7-e527-44af-be9c-08de0a65e118 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8270 Content-Type: text/plain; charset="utf-8" Updating alternatives is done under the biggest hammers possible. The freezer is used to freeze all processes and kernel threads at safe points to ensure they are not in the middle of a sequence we're about to patch. Then stop_machine_nmi() synchronizes all CPUs and puts them into a tight spin loop while re-patching occurs. The actual patching is done using simple memcpy, just like during boot. Signed-off-by: David Kaplan --- arch/x86/include/asm/alternative.h | 6 ++ arch/x86/kernel/alternative.c | 131 +++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alte= rnative.h index 61ce8a4b1aa6..f0b863292c3c 100644 --- a/arch/x86/include/asm/alternative.h +++ b/arch/x86/include/asm/alternative.h @@ -19,6 +19,7 @@ #ifndef __ASSEMBLER__ =20 #include +#include =20 /* * Alternative inline assembly for SMP. @@ -89,6 +90,9 @@ extern s32 __cfi_sites[], __cfi_sites_end[]; extern s32 __ibt_endbr_seal[], __ibt_endbr_seal_end[]; extern s32 __smp_locks[], __smp_locks_end[]; =20 +extern struct static_call_site __start_static_call_sites[], + __stop_static_call_sites[]; + /* * Debug flag that can be tested to see whether alternative * instructions were patched in already: @@ -98,6 +102,8 @@ extern int alternatives_patched; struct module; =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS +extern void cpu_update_alternatives(void); +extern void cpu_prepare_repatch_alternatives(void); extern void reset_retpolines(s32 *start, s32 *end, struct module *mod); extern void reset_returns(s32 *start, s32 *end, struct module *mod); extern void reset_alternatives(struct alt_instr *start, struct alt_instr *= end, diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 23bb3386ec5e..613cb645bd9f 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -6,12 +6,15 @@ #include #include #include +#include +#include =20 #include #include #include #include #include +#include =20 int __read_mostly alternatives_patched; =20 @@ -3468,4 +3471,132 @@ void its_free_all(struct module *mod) its_page =3D NULL; } #endif +static atomic_t thread_ack; + +/* + * This function is called by ALL online CPUs but only CPU0 will do the + * re-patching. It is important that all other cores spin in the tight lo= op + * below (and not in multi_cpu_stop) because they cannot safely do return + * instructions while returns are being patched. Therefore, spin them here + * (with interrupts disabled) until CPU0 has finished its work. + */ +static int __cpu_update_alternatives(void *__unused) +{ + if (smp_processor_id()) { + atomic_dec(&thread_ack); + while (!READ_ONCE(alternatives_patched)) + cpu_relax(); + + cpu_bugs_update_speculation_msrs(); + } else { + repatch_in_progress =3D true; + + /* Wait for all cores to enter this function. */ + while (atomic_read(&thread_ack)) + cpu_relax(); + + /* These must be un-done in the opposite order in which they were applie= d. */ + reset_alternatives(__alt_instructions, __alt_instructions_end, NULL); + reset_builtin_callthunks(); + reset_returns(__return_sites, __return_sites_end, NULL); + reset_retpolines(__retpoline_sites, __retpoline_sites_end, NULL); + + apply_retpolines(__retpoline_sites, __retpoline_sites_end, NULL); + apply_returns(__return_sites, __return_sites_end, NULL); + callthunks_patch_builtin_calls(); + apply_alternatives(__alt_instructions, __alt_instructions_end, NULL); + + update_all_static_calls(__start_static_call_sites, + __stop_static_call_sites, NULL); + modules_update_alternatives(); + cpu_bugs_update_speculation_msrs(); + repatch_in_progress =3D false; + + /* This will wake the other CPUs. */ + WRITE_ONCE(alternatives_patched, 1); + } + return 0; +} + +void cpu_prepare_repatch_alternatives(void) +{ + alternatives_patched =3D 0; + /* Reset the synchronization barrier. */ + atomic_set(&thread_ack, num_online_cpus() - 1); +} + +static void make_all_text_writeable(void) +{ + unsigned long start =3D PFN_ALIGN(_text); + unsigned long end =3D PFN_ALIGN(_etext); + + set_memory_rw(start, (end - start) >> PAGE_SHIFT); + modules_prepare_repatch(); +} + +static void make_all_text_readonly(void) +{ + unsigned long start =3D PFN_ALIGN(_text); + unsigned long end =3D PFN_ALIGN(_etext); + + set_memory_ro(start, (end - start) >> PAGE_SHIFT); + modules_post_repatch(); +} + +void cpu_update_alternatives(void) +{ + /* + * Re-patching is not supported under Xen PV because it uses MOV-CR2 + * for synchronization (see sync_core_nmi_safe()). + */ + if (cpu_feature_enabled(X86_FEATURE_XENPV)) { + pr_err("Xen PV does not support dynamic mitigations!\n"); + alternatives_patched =3D 1; + return; + } + + pr_info("Re-patching alternatives\n"); + + /* + * ITS mitigation requires dynamic memory allocation and changing memory + * permissions. These are not possible under NMI context. + * + * Therefore, pre-allocate ITS pages if needed. If previous ITS pages + * exist, those will be used instead. + */ + its_prealloc(__retpoline_sites, __retpoline_sites_end, NULL); + modules_pre_update_alternatives(); + + /* + * Freeze everything because we cannot have a thread be in the middle of + * something we're about to change when we issue stop_machine. + * + * Therefore, use the freezer to get all tasks to a safe place before we + * re-patch. + */ + if (freeze_processes()) { + pr_err("Unable to freeze processes for re-patching!\n"); + return; + } + + if (freeze_kernel_threads()) { + pr_err("Unable to freeze tasks for re-patching!\n"); + thaw_processes(); + return; + } + + make_all_text_writeable(); + stop_machine_nmi(__cpu_update_alternatives, NULL, cpu_online_mask); + make_all_text_readonly(); + + cpu_bugs_smt_update(); + + /* Free un-needed ITS pages. This cannot happen in NMI context. */ + its_free_all(NULL); + modules_post_update_alternatives(); + + thaw_kernel_threads(); + thaw_processes(); + pr_info("Finished re-patching alternatives\n"); +} #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011006.outbound.protection.outlook.com [40.93.194.6]) (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 ACA1030F531 for ; Mon, 13 Oct 2025 14:36:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366188; cv=fail; b=XGfjgJJHYTlHl73HBpvArUxbw3yIg14038Ww17fKm7JwUHp/rbpcK3DkwmGDSMzCfWavV9TtzVLkJlVBjRCaRGBOmmr4XNgZbO1oJV4hSj4cxfnI9pEVLH/Bioc248sjldpNAwbqWV7novsLxwmO8zixtup8Kts6vXSlxCUUfm4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366188; c=relaxed/simple; bh=LYjlcEx6gfR7xNSOmIH+fst5jmPLaombXwmmQrSytnQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=G0XyQ1FmNfu98R70eRITJc7tXHkLVIpOOYwiu076TaOYrAoRt73sy8B3S0dBiIlymcwkhTyN+SG+CkHJs0BwB6Qm4OTwgsZXJVSyZZPI8YXuoKNYFBA/XbEc+k4y/+cTSqiThW+ctVGWbU6XNDscWWCPWsPZE4ImKPAJKQX4ReQ= 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=X2lQk69M; arc=fail smtp.client-ip=40.93.194.6 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="X2lQk69M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f0Q917du+AT/CxqxlFiivkJRzemqogKpbigjtvjrtvcCaJAF9Ptox6qp+2DHjXHqyG8IATRA3A219/IqB+SOGXaY7pWQxIE8nfY7xhZ/eCgRWKS9D/GKTW51bWecbQrQugMS9k4eEkmP5HSZESGDOddIjDJHicpZ0CY49Qmi6YzuiEP/Tym3dmK6EbM1li+IuaZ3urUCku2Yj8ieTfqaCod3PT2NdbcdVk2CJTp95jih1WO2wI8ZAI9gEtznBPQsePrs4bhntMBk8k7V+iKIebQrZwoN00Fi+3Uv8KgRnPnSpfV/wOzHfwJt986+cz74nxn84Lp5TTR8v20dqjPohA== 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=8WsfOUDfRx9OtswORNYwTOSqDYblb+B9kcCdPHH8seA=; b=jbByQfX/pozoP6ZADPsMPs9fDdz8myu5amE6ekuYo2QzeAAF2YqeoRwCA//IYuf1h+uMQopcws5cVsuMl9mEeLDKfcjMaXnnoqsvgvmXMpCwdlTDztiuCvQwXxnE+MjY0Xk/Mfkreh4P4rcdSsUxXTtLiBRdX5dhTxmiHhiMRo7IQNRRg0OeUhNmKkjHP6YhhAjCaTp6nEQshioX2XDueQFlZPy6fWMuyvJOoL33DHVL+3EviYnRZ9rS56TtUX5PCjCpx8pf3UjhSwNI9V7yEoxub4w6ubvxq+QDJRfxAgNUm+LQEL7vVZXvdCrat5yvfyU7jXdx4krWA3DXDoZKdg== 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=8WsfOUDfRx9OtswORNYwTOSqDYblb+B9kcCdPHH8seA=; b=X2lQk69MJ/AYAR7w+P11K8Sk8Bq1V9pRzfjXSfXgJoT6lPg1rh2YXiHFRfzukCM46OGK7/30mmP1CB3z3fVL8LT7j9kI2O7mG/dqV/kqsawdAWw97oEmRQwAdoMUJYgZZPQKpnwA+rpJh5FjepKpz6aZF/nzieU4nXV7AKc4IQk= Received: from MW4PR04CA0088.namprd04.prod.outlook.com (2603:10b6:303:6b::33) by DM4PR12MB5938.namprd12.prod.outlook.com (2603:10b6:8:69::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:23 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::66) by MW4PR04CA0088.outlook.office365.com (2603:10b6:303:6b::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:36:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:22 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:56 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 51/56] cpu: Parse string of mitigation options Date: Mon, 13 Oct 2025 09:34:39 -0500 Message-ID: <20251013143444.3999-52-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|DM4PR12MB5938:EE_ X-MS-Office365-Filtering-Correlation-Id: ce563c38-8525-4150-f8e4-08de0a65e198 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cTmblws5IzwsfpQSkQCiNapEBz1oRH0qJ5l0XGfooLzoZ/7eVMpSQPAXXYwP?= =?us-ascii?Q?mdVnb/9yC+VBtO+OeoN7uQ/2eLPi+KUrsr1Ckm5jvON6A7ConV5aL0YV15Ly?= =?us-ascii?Q?yYj5z0nDhLf2AyHhOofWdLFAtk+gXaR7C/f4VA8QgrlO0zDxhqK8W9q1mKVO?= =?us-ascii?Q?B8CASjkSTvfkncdpae917I8BZPkBz8Wcz3tvJKOum+8dVXjMB8n9cEhBhohr?= =?us-ascii?Q?BoRdlUUsWm8N18UbYiEjqqNTMay/nMJv8Fpp3Hb4RcB0e3MU72OcG/za7Ikg?= =?us-ascii?Q?2qnUCQVI3kc+7pv3pwKK2kgCdJQfL7fJ65y7kzcInISSYXnlKoZ78JfbY0W6?= =?us-ascii?Q?7yb1Kl0x9JVEFtKLztoxwn3V6Zy/e6YFeZsIYewKFZ9H3eg0myhk//PkJfD/?= =?us-ascii?Q?jeLUGWSLrlZ8F9j8pK4pwgbnVI3UWiwFuYqXCGHMcMKZoB/pqA8Jer+DxtfG?= =?us-ascii?Q?xUl+aqt8KNx/6n92iXN+pXBMN7h38FkgNYGQREe/Ve3RlavHsTB4PC1ingFQ?= =?us-ascii?Q?BAovfzjcaySCzlddx8Zt1BofKgbZXMiljuAxrylKYdqRltkUxmZTBmsK4cFv?= =?us-ascii?Q?aLgiAskkI5xB8hD/RzRMNFAb8O7LuADJg4O8YjjanyF0BMSEDQTRJRwJgkiQ?= =?us-ascii?Q?6AyC6d9dyMC7Tleucvzs6Pv4VufeT8TfxNE/XGAKRO6z5Vm7zD2lRl0UmDcE?= =?us-ascii?Q?S9EwFCKGNpqrJ49mo+yV22+C1jOoiCySG37dQi2cf1Ev17g3qBtRskhp97lW?= =?us-ascii?Q?IhLlqEHn5RXlCuuMoa8kPDI36G/i/0KhRfx9qMpYt9s4CTSZeVo16jQCL0Yf?= =?us-ascii?Q?6I8g8HiTN4fxzd6ctr8Q/2A01ki/eeiJLu1qwGBmJGPpnFMwFk1oRCdYJERD?= =?us-ascii?Q?RR+XX71uYGqNQVE1Itld0GE/e+tSUz3ZyIaLOruNrpjwDa+aZ7L1pSPyWUhk?= =?us-ascii?Q?nGTLotcZS6P6q3SCE+rDBNdwnMSg53aPhlmwxAFH9P6PFPur/zjM6am1uihP?= =?us-ascii?Q?y7yozwu+H65WSvfPtxoLXksvEdtG/eY2ctoc/7w+UduQ0k0LlQAyKatkNPXe?= =?us-ascii?Q?X2f9WfmWgpH+q0CO3aEwMQ8s6bjNS4sZHjRAdBa8KDobe2y2l6tQWfZhfS0H?= =?us-ascii?Q?u/vMufq+1OxzZ+Q5tuE9uJk+ZxXdUrCxEv44Kbnp2Ubc7WtKzDGJ2Yx09n3C?= =?us-ascii?Q?3f7olSa6sskJQzraVUM7h8NQzraxZU9HYGZatLBz4x0Sj9guq8/A+toa1kla?= =?us-ascii?Q?6UYpeW8AfjJd9Rn2Fddaf2LPvdjHmIATinPf+U/UKINWbY2QfmsEmILkYxZ8?= =?us-ascii?Q?fF86u7pqgDHWTVGIFVs9HIFSuSfo9ArDUb6Zsp/1YcIFj2gpYkN18ST19ZrS?= =?us-ascii?Q?ZX6rHUmnfIQYqBBw8CD1ACQPCZEGPmKfam9XG9Zgv1OuxmgXK5ZtZTuxOpBK?= =?us-ascii?Q?3xsviPxVyJelTAGZ/PzB0BXzqL//TquVMIcSJkUNxQEUOepvjp2nqhUfInWD?= =?us-ascii?Q?lgIBFG8+Y2o8jG6G7yfsmj3PubcCQ2e/T/96bWKCIyGlqgMSRNrPy6/8PGCs?= =?us-ascii?Q?HlTp4F44FBv0oBR6RN8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:22.4660 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce563c38-8525-4150-f8e4-08de0a65e198 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5938 Content-Type: text/plain; charset="utf-8" Support runtime parsing of a cmdline-like string of mitigation options. The global 'mitigations' parameter is processed in generic code and all other parsing is done via the arch-specific function. Signed-off-by: David Kaplan --- include/linux/cpu.h | 4 ++++ kernel/cpu.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 3da629a76a49..6f69344465f1 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -210,6 +210,10 @@ enum smt_mitigations { =20 void cpu_reset_mitigations(void); void arch_cpu_reset_mitigations(void); +bool cpu_is_mitigation_opt(char *param); +bool arch_is_mitigation_opt(char *param); +int cpu_parse_mitigation_options(const char *str); +int arch_parse_mitigation_opt(char *param, char *val); =20 #ifdef CONFIG_CPU_MITIGATIONS extern bool cpu_mitigations_off(void); diff --git a/kernel/cpu.c b/kernel/cpu.c index 33289405af30..942a200398c9 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -3343,4 +3343,36 @@ void cpu_reset_mitigations(void) attack_vectors[CPU_MITIGATE_GUEST_GUEST] =3D IS_ENABLED(CONFIG_KVM); arch_cpu_reset_mitigations(); } + +int __weak arch_parse_mitigation_opt(char *param, char *val) { return 0; } +bool __weak arch_is_mitigation_opt(char *param) { return false; } + +bool cpu_is_mitigation_opt(char *param) +{ + if (parameq(param, "mitigations")) + return true; + else + return arch_is_mitigation_opt(param); +} + +static int __cpu_parse_mitigation_options(char *param, char *val, + const char *unused, void *arg) +{ + if (parameq(param, "mitigations")) + return mitigations_parse_cmdline(val); + else + return arch_parse_mitigation_opt(param, val); +} + +int cpu_parse_mitigation_options(const char *str) +{ + char *tmpstr; + + /* Copy the provided string because parse_args will mangle it. */ + tmpstr =3D kstrdup(str, GFP_KERNEL); + parse_args("dynamic mitigations", tmpstr, NULL, 0, 0, 0, NULL, + __cpu_parse_mitigation_options); + kfree(tmpstr); + return 0; +} #endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011018.outbound.protection.outlook.com [52.101.62.18]) (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 8D13F30FF26 for ; Mon, 13 Oct 2025 14:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366195; cv=fail; b=pdxHyBbSiFjgXZ74NZRJwVaFYl+AqF0QS3g0Ywgk1uU5SRFQNl8rn+UdO5cqU+mvqjKa6o9Z+a+GSrSbJ5oWl9OHWYjsKMhO62ALnHmyhZUgoS75PoW/Q+ZO7UkAsN2O+87+M6WVJ8jmsYqH3T23Qi56y3sT5sTu0onVXig1Swk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366195; c=relaxed/simple; bh=bp1jWWzqekeFOvLFqOMlW7VC4XuPQ5Xw/ZolnUe8voQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pRhCNfSzRMkpzbSqS/2Jb2T7jyxm03RiAt+AnkJzp26h5gtlpNcxsMuJzoHyCV4fmqpI0LYMJQ+VTO1Eqi+dwUyw/RkpV4RU1dVFI+obC04BkUUga5oKO05rLCTuPvaM4f/wbJqiIFoUZ0m/wvwQb/8KjSDaM6nc+bVyKG8jIAw= 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=fVjDbP95; arc=fail smtp.client-ip=52.101.62.18 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="fVjDbP95" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q8F88LXX3Ss1Wfe/sp9KmsevPO+fYgLffgnCxFoWSrrQZd4vLEffPJU2VrvvSKZ71Pr/c2/0QQaV9tsdwOCh63uQ9Gf1nAEjL590coBsV5K23Wo+MTRAdJnS8c7ozBJ1sQoWCGRe0IhJRc/X5AJo0hiC50pIFrnPJN4txfHNEO6T7b8uFUctTM0UkS1pOtva/FaguMzsP5wKOFuHNVudlff+S/qGZSD9GxPz2lVT/VI4JqsYo59mJJznC2F2MK4zIyZMneWFKpNFmXmrlZof4Lasl5QyTUSuDkG6Ehf3vNXRnS0uXYWl+FtOZPVzlIAznI5zQvPOGXz78yVpU8qcUw== 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=y59zmtEElqgtRWgbhg08llZm41Yf4sLC+h5XKoxy+TU=; b=hoxT7uch6qqnHFV+Op/1OTDV4rYi2bk5VqNscJEMe6K9zY2jK/OhdEr4ApTAbcb+uHYkxY/J6QS5g49FB/+qDgJWh0lnvJ+rdyzMuwRZCSvrStk7FfkCLzM7g7xiSETxLfdWOYPFVrkh127z3CEqH5JeFmNQvxT1bFhViZwaWpZsx8sbQrT8mdodja5M2apGcPdT32KObLHd13r2lZD+T/pqMNSRRgBVpVorY/dVK/GsXCNqGNignR/qIQM77TfMuSPAGyCu/qRa9dhOFerGxnX7VVQqgvJdKA5lWkn9tAMprhtmtoPACIuJbuPVR3YR9ugFeWXBwhx4kNVR5mKvdg== 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=y59zmtEElqgtRWgbhg08llZm41Yf4sLC+h5XKoxy+TU=; b=fVjDbP95h7zOlXuS0PDubut/PuNp85kIH8UqtQs4Ktwzeuncf1JVN/SKhY1Bs3l71dewZqY45W/EWMJBIUCYOmCstzQ9QHwWWbCqNkU+yOfBwbP5kBbr0Ce6t8NWZelEdWQet5In9XJO49R5rQusP0SOl7r3RxUsa1XNGNlaxFE= Received: from BYAPR07CA0070.namprd07.prod.outlook.com (2603:10b6:a03:60::47) by LV8PR12MB9156.namprd12.prod.outlook.com (2603:10b6:408:181::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:24 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::20) by BYAPR07CA0070.outlook.office365.com (2603:10b6:a03:60::47) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:22 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:57 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 52/56] x86/bugs: Support parsing mitigation options Date: Mon, 13 Oct 2025 09:34:40 -0500 Message-ID: <20251013143444.3999-53-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|LV8PR12MB9156:EE_ X-MS-Office365-Filtering-Correlation-Id: 248ec9a1-0f65-4ef7-eee4-08de0a65e1b6 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?i7MNJe50c0nOMY4fvakGCGXuyqc6JTF4RnYvHQS54dUECIod0i62M9FK6ewN?= =?us-ascii?Q?aO3E/I9hGq4/rMrU+7YcLHwM7DueZVcwP/LwGk0Ezewf/GUREjRDB06eTE2J?= =?us-ascii?Q?oOokxyMbaWiopWlQKFhHuiSG7/z+KrKKnwgZA/phV/KoWP7Q2rXgIX8YAs6P?= =?us-ascii?Q?Sp0sgSlT/iOu8lR39nAntLX69WfhBB09kNqpdmhwmT4/s0fX2acdbN1F790V?= =?us-ascii?Q?Qrz80DBYdHnNBQcOIn9Chhro055UK9iZX2TNGHIqR6ieGBXnIy8N8QX9+6MN?= =?us-ascii?Q?QEA4w/ydlyXaVGhTZPbHMkUOqHl4cNZkcyfRxdvca1CN7dPBcIQvxizkZRgu?= =?us-ascii?Q?tINWlyUAXo+pZfp6pm4DNEfUBevBKqpNoPIaMeWK+6b3MVcW16pBJzC7gpTa?= =?us-ascii?Q?JWpOZin/C1dt9beTteUqwWayeArEPOW5V7myJ5IxT7qs1sVvsDhJ4iDibFKO?= =?us-ascii?Q?BhuEgamPO7yVFw8IMV90MKtLFxXe4VVKxU7e9VT5mfyAgSKaTgtJcdw26itT?= =?us-ascii?Q?uPYLpKdwVolhXZQnZ6XBpEyZzo1U07RfSIz2R8Xejk0h46ktQTIEiDTjW1ZQ?= =?us-ascii?Q?bOtXiDzwCSfuGgTBRVwK018/og7GpGkWaZRl/b8bBMXf8FX/CvYMNBzsWccb?= =?us-ascii?Q?szaYppXnEU3lBCRh5aposfidaxI2iky45dL3naMfmNzBVGgVBAKgiFNRo/iV?= =?us-ascii?Q?HFoUqlt5zAeGtIZWCOQ4mVg1NkJEkUWrfA8MrA9sn+ATDMAZZ1CoCJ6WAVGQ?= =?us-ascii?Q?NfJLD79wUFwAIW9vgU25jjQX4dSMOXYW0VPL68G1wEXQumN4/f7JkdKYsSSf?= =?us-ascii?Q?q4h9n8RID87ZqEjhBcQHiYuGsgk9RyW1FaRj+G9l3R4HMnnWTo5S7PJyyBK2?= =?us-ascii?Q?tYWUAigpe+6dhAUTLjSBSD7TfoArZQvmOwiO37BUYRfA39h38nCjbJ7fGlZG?= =?us-ascii?Q?hc2KMN+kzQfkskyDO0H4GoYv3kGeoA6WBfkaoTr6OFXQdTAWmKk14ywKUKZv?= =?us-ascii?Q?jDsk/YBsupwODMstxUARLaR7wOtvkwN9AQYGjIE1g7k3FIFcKaagCspphCMe?= =?us-ascii?Q?gN4jJj8pvM7YLbpQDkhZFRjfuCFsWiIzfdjvTRGFcz6cHlOak1DRpPtKrYoR?= =?us-ascii?Q?xNitmAZDCzQ4DPLNsaVW8iND7Ul1h+wTf52BqsHA1+BkaRpLHodi6rs1bsyk?= =?us-ascii?Q?mNCyszuJiUZ9NcT1+UDH2tika6qUYvt8HBUgJVoOCbIuJ/dAdOrW0/VTlJgh?= =?us-ascii?Q?ftpogHmSiHJxRyCRC+Z++iXrH+TSLk57mh3j3Z/l6TWNma26Rj9IJLrvSFSS?= =?us-ascii?Q?r/J/oerTD/hUxKf6wv8borwrHyxmCbVk7uC4YPJ/OJK0PQxcv39DUGl30z9Y?= =?us-ascii?Q?Q54B6lR8lwQLcIt4NP1zQUBFcD/ttsTwVPbvUnC87aiZOfdnvrumsAgRdtCA?= =?us-ascii?Q?1UB1t/exoK9cQpfHRqBiUU+wpx9omUMrCZpjr8eb7HiI0T23K0BK+L2Z3Pxt?= =?us-ascii?Q?gW0WQmBlOyJnLZ979LdYC4VgBJEdQOQEdmFPJ5neffuHXmMBrJYy7fLVeJXK?= =?us-ascii?Q?e81N6x9lyNWtkdLxEnM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:22.6622 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 248ec9a1-0f65-4ef7-eee4-08de0a65e1b6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9156 Content-Type: text/plain; charset="utf-8" Add arch-specific function for determining if an option is related to a mitigation and parsing it. These will be used for parsing a string of options for re-evaluating cpu mitigations. Signed-off-by: David Kaplan --- arch/x86/include/asm/bugs.h | 2 ++ arch/x86/kernel/cpu/bugs.c | 56 +++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/arch/x86/include/asm/bugs.h b/arch/x86/include/asm/bugs.h index 2e1a7d282e51..1e142a676335 100644 --- a/arch/x86/include/asm/bugs.h +++ b/arch/x86/include/asm/bugs.h @@ -13,5 +13,7 @@ static inline int ppro_with_ram_bug(void) { return 0; } extern void cpu_bugs_smt_update(void); void arch_cpu_reset_mitigations(void); void cpu_bugs_update_speculation_msrs(void); +bool arch_is_mitigation_opt(char *param); +int arch_parse_mitigation_opt(char *param, char *val); =20 #endif /* _ASM_X86_BUGS_H */ diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 2f82261d033d..26ceb42e0cfb 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -3991,6 +3991,62 @@ void __warn_thunk(void) } =20 #ifdef CONFIG_DYNAMIC_MITIGATIONS +struct mitigation_info { + char *param; + int (*parse)(char *str); +}; + +static struct mitigation_info mitigation_parsers[] =3D { + {"mds", mds_cmdline}, + {"tsx_async_abort", tsx_async_abort_parse_cmdline}, + {"mmio_stale_data", mmio_stale_data_parse_cmdline}, + {"reg_file_data_sampling", rfds_parse_cmdline}, + {"srbds", srbds_parse_cmdline}, + {"gather_data_sampling", gds_parse_cmdline}, + {"nospectre_v1", nospectre_v1_cmdline}, + {"retbleed", retbleed_parse_cmdline}, + {"indirect_target_selection", its_parse_cmdline}, + {"spectre_v2_user", spectre_v2_user_parse_cmdline}, + {"nospectre_v2", nospectre_v2_parse_cmdline}, + {"spectre_v2", spectre_v2_parse_cmdline}, + {"spectre_bhi", spectre_bhi_parse_cmdline}, + {"nospec_store_bypass_disable", nossb_parse_cmdline}, + {"spec_store_bypass_disable", ssb_parse_cmdline}, + {"l1tf", l1tf_cmdline}, + {"spec_rstack_overflow", srso_parse_cmdline}, + {"tsa", tsa_parse_cmdline}, + {"vmscape", vmscape_parse_cmdline} +}; + +static struct mitigation_info *get_mitigation_info(char *param) +{ + int i; + + for (i =3D 0; i < ARRAY_SIZE(mitigation_parsers); i++) { + if (parameq(param, mitigation_parsers[i].param)) + return &mitigation_parsers[i]; + } + + return NULL; +} + +bool arch_is_mitigation_opt(char *param) +{ + return get_mitigation_info(param); +} + +int arch_parse_mitigation_opt(char *param, char *val) +{ + struct mitigation_info *info =3D get_mitigation_info(param); + + if (!info) { + pr_warn("Ignoring non-mitigation option %s\n", param); + return 0; + } + + return info->parse(val); +} + void arch_cpu_reset_mitigations(void) { spectre_v1_reset_mitigation(); --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011027.outbound.protection.outlook.com [40.107.208.27]) (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 27CB430F945 for ; Mon, 13 Oct 2025 14:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366192; cv=fail; b=I7WC5qP6tLmCjoR+s8ez70HvSHx4W0ZM+09ndAZzDNXvmpbuKrrD1TTKbVVXPC6LCCR23n2dySaq0rz3PGfULr5Eb1/7cug8XXGK8OCGXxA33HD1alplWhxgAZr4A5Rrm5qmphYCbsLdZmyMW1wKGDxfiduWdzyUs5Jc4mYxbZw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366192; c=relaxed/simple; bh=u8cHskI8XJHNlzYGt4nZK+b/FPY96XclSvafYkXmyag=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JxmCbikgjdAlyDShb7HC5wKObEQ7KQKAXsHXualfVoXiL/nBrcAaC2NHbD8jtglFNLyVth4/g5idybJBtJa6sWl4TMt+AqGhC3KCeQciyQuoj9t2SuZP8JWG4Un6osE12Ai/6N4bHzX6XEnZ8IHK8ure9uwInaOg78kczkZXbe0= 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=F1c7OtZx; arc=fail smtp.client-ip=40.107.208.27 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="F1c7OtZx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DkFJBj54xgFsRP+mjhY5nQMMPccaxDZGbIr9nfKHWT5bwVrO2o7nxuVLE4FWignfeIvuRnND8dO2AeUGzZvPPfJrQI+1zWJbwwm70i8nDyZv0OjbGUGKaqYmnjtWok3Lnfnsm/eue5jSSywoawWj+42mnwzsRD4YkKBK1UJ6ZUbYADehJie6WLsy5eKQlK2tdcD6OfHzUNxCoOw92A63kWBNLL1W6smBiYLa40Y0ouzEJJT20icyCLybdyxF0j/wu3Dc4Pittybw+BOJwmMqD4aWmY8L13M3j35sDgn9gyncsuq/gD4/zNYexg3AZilVwCZutQSxFhRi9m4TWlnyFQ== 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=nutwp61bpO55MAgOPyw0BDaMPJxKXGVP/Si+kQR/zbg=; b=FGcNtZwZfIY+7m4z/UnXf8uhI8GB1BkYlo95YXu8qUgWBRU1k9bAqGTkJd4zU1dmYf3QtEB+tRQ1pSIgoQPCQ1Ya94KyqDKUKmpJ6tw9Z3MChnPE7L/ai1JVtUXJAdAt71bSiJ4FoIvJroAJyIPdkAj1mfHIY00VIIigX6bJfLGr3mXJO+QAAwNdQuaJGUXdjJu0LlMD0I/K97KB0fvnFLGVJaK9LvH8tEhASaOuLzpekVbCnbOuVf4a7fjCI/TeH3IUR+zNCaYaJkr2s7JB6ROFPedvP9AWS7FteOtdJr01fu6A6bRFNEqnsZRh9fuz+tTNTmTmFurZtKOnnOt7lg== 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=nutwp61bpO55MAgOPyw0BDaMPJxKXGVP/Si+kQR/zbg=; b=F1c7OtZxjJwP2VuAirKEDMCP+CJ5qQnRTYl96NTR/eRMNgK/zLtxuXC98sUSUlJIlB4p3UskoFMZfSuI+HP8eprBL4JpUb6Mfg2eByK8w0XLiet06ABGpaM1/jssVeufsySbguGxAUQrycZHlnMhfWh8pdckukHEM9du2ITag5Y= Received: from MW4PR04CA0072.namprd04.prod.outlook.com (2603:10b6:303:6b::17) by CY8PR12MB8313.namprd12.prod.outlook.com (2603:10b6:930:7d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:23 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::db) by MW4PR04CA0072.outlook.office365.com (2603:10b6:303:6b::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.11 via Frontend Transport; Mon, 13 Oct 2025 14:36: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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:23 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:57 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 53/56] drivers/cpu: Re-patch mitigations through sysfs Date: Mon, 13 Oct 2025 09:34:41 -0500 Message-ID: <20251013143444.3999-54-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|CY8PR12MB8313:EE_ X-MS-Office365-Filtering-Correlation-Id: a1be0125-0edc-4878-d255-08de0a65e218 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YxzAMVd7oipP3LkpDxkDdZi9C0hlV40s5H8Otr0zUnoskmsVB2P/ZamLAPDR?= =?us-ascii?Q?RqNseWZIFQiZqQkxVrxhqxkKkahmLXeW0nGGTL+5DudqM+P1kNbf8UrmPLXl?= =?us-ascii?Q?n4kjIE4FRzGSrNepqaPATPNMR+JDr/HrxNubLTKF61niwLPx/6p2DgnE6f/l?= =?us-ascii?Q?BF3xSRhkqMlVZ86OuvnrciOurrvQItmm/RzRWhdRgS2KJ/TM7HaSnTedzGE0?= =?us-ascii?Q?YI2UdSBFnNC1/ARGrowgGdxU6Urz0lWKKCenDCV8iGWySCnSOTLXwAINROHc?= =?us-ascii?Q?36dU3y/HPa4VM04sQQX7bzagC/NfMoVD0B2c+5mBdLG69qg3d5jZQAIV5ndX?= =?us-ascii?Q?icLOj/OThDnEM8baWesA83F4fbZGqM/nzd8XxD4jrC8CuLmBcxdyyo1m/GBZ?= =?us-ascii?Q?2id+LcHObymUXd90zi2mkkFaPluXpxvYAcv0o7VhERMLx9jQnj3Gw0pyDp7i?= =?us-ascii?Q?yBYbrZi0BdRrSZTRR6hKpI2z/ge2B25IAbCKfBlUVWZpRyJaRwjim2o4m+Xo?= =?us-ascii?Q?/AkvlNBRop66AXisyyh2jhBMZIq8gWHsouQuZQpcooUdgZpT5kswCxgJkHhA?= =?us-ascii?Q?4EynLSLzTPOHAZ0k9vLaYz1NcmWmXAtXsDCCDQeYyQGhYgeedrTh5xpnISOq?= =?us-ascii?Q?4uFVB+sRC9Tijhzo1vZL/fbrqC7wDXY2KPggYbejgP7pZ3r3jNHr84waKqid?= =?us-ascii?Q?vwNckVgGpMR9WF1jgmpuzxUS16Ibm2o29KAPKPuBWgaAGOOZ+knjNpsYrTn/?= =?us-ascii?Q?kOYqm8QfgTsnIZE+IdEHiB09XQJyZg/rKqHUGfgZ5ewWQN6Z/MFjxvULt4QP?= =?us-ascii?Q?V4JaAIZw4ZNa/iKuphhmSsXTpu80vYbjWCc9VbXF9IkZrN8d0t9GgWz9EEiZ?= =?us-ascii?Q?R8nd23dQ4gC4rC+OWWuMklJlgXLMsqVcVQh56/ee9wFQrlBrapjgPtZjqXxk?= =?us-ascii?Q?0tTWC1e6zpnVjARh8bKoOy8cRjRfbVsd/YuugBbgR+txBqhMcITUvtc7F1o5?= =?us-ascii?Q?OejtoVdxV4ICl72LHcAtP5GPlOT76DK5ZydRY90RDu5IXBjV8MVHLkuvSF4W?= =?us-ascii?Q?b8SfSIwxRkqt+A7wuuFKKEjtf0rhyWvQ8gnHBh++UoF9Nc+9fYz5DD3nABrg?= =?us-ascii?Q?VG5Nfr1tVTjsHyEepLRfmc+a9bNdib7to7NZGVFF9SOSdjlDUV74RL2LYf3z?= =?us-ascii?Q?JzrUK/UTNc64heBZC9punYP/IvfMOzWOrjDzj7SnKX0KUWjCz6qHgKGIIBNq?= =?us-ascii?Q?WZS97LLRmTB9nLd9IhmehiWRgPEjxkq9S6fMQvgP2CxdlO0CBzqkJ8KpN2Hs?= =?us-ascii?Q?JxSFwnzi57avlAOwfMlbzmTJ0WIMeYHC1iRiyPAzsHXtlhysvLRjalp80XWA?= =?us-ascii?Q?lMnc6qcQybjMqPZaT4ztMKRUwOnnJ55EeeKo8SEj42F4iLB5kDlDYbw59f20?= =?us-ascii?Q?BUTXVZ+cIQrkKVpRBhof6fkmPgrnkZfHFyd3om2idTOt7udb5sluYQokvRuR?= =?us-ascii?Q?Jfu13FCMPMdebdC98QLJdWBiIO7CAiaG5ufuJzV6mMPQYBFzbXwuRdx80h9n?= =?us-ascii?Q?PH0fWw6maIiVQ87Iha4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:23.3038 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a1be0125-0edc-4878-d255-08de0a65e218 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8313 Content-Type: text/plain; charset="utf-8" Create a new file at /sys/devices/system/cpu/mitigations that prints the current set of mitigation options and can be written to in order to re-select mitigations. Only options related to mitigations are handled, with the file initially returning the relevant options from the command line. When the file is written, any existing selections are discarded and the new options are evaluated. Signed-off-by: David Kaplan --- .../ABI/testing/sysfs-devices-system-cpu | 8 ++ drivers/base/cpu.c | 113 ++++++++++++++++++ include/linux/cpu.h | 3 + 3 files changed, 124 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documenta= tion/ABI/testing/sysfs-devices-system-cpu index 8aed6d94c4cd..5a0d4372e739 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -777,3 +777,11 @@ Date: Nov 2022 Contact: Linux kernel mailing list Description: (RO) the list of CPUs that can be brought online. + +What: /sys/devices/system/cpu/mitigations +Date: Oct 2025 +Contact: Linux kernel mailing list +Description: + Read/write interface to control CPU mitigations. + + See also: Documentation/admin-guide/hw-vuln/dynamic_mitigations.rst diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index fa0a2eef93ac..3f9410dee67c 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "base.h" =20 @@ -605,6 +606,113 @@ CPU_SHOW_VULN_FALLBACK(indirect_target_selection); CPU_SHOW_VULN_FALLBACK(tsa); CPU_SHOW_VULN_FALLBACK(vmscape); =20 +#ifdef CONFIG_DYNAMIC_MITIGATIONS +static char *saved_opts; + +static int __cpu_filter_mitigation_opts(char *param, char *val, + const char *unused, void *arg) +{ + char *opt; + /* Extra byte allocated for the ' ' at the end. */ + int len =3D strlen(param) + 2; + + if (!cpu_is_mitigation_opt(param)) + return 0; + + /* Extra byte allocated for the '=3D'. */ + if (val) + len +=3D strlen(val) + 1; + + opt =3D kmalloc(len, GFP_KERNEL); + if (WARN_ON(!opt)) + return 0; + + if (val) + sprintf(opt, "%s=3D%s ", param, val); + else + sprintf(opt, "%s ", param); + + strcat(saved_opts, opt); + kfree(opt); + + return 0; +} + +/* Only save options related to mitigations. */ +static void cpu_filter_mitigation_opts(const char *str) +{ + char *tmpstr; + char *newline =3D "\n"; + + kfree(saved_opts); + + /* + * 2 extra bytes, one for the final NULL and one for the space we add + * between each option. + */ + saved_opts =3D kmalloc(strlen(str)+2, GFP_KERNEL); + tmpstr =3D kstrdup(str, GFP_KERNEL); + + if (WARN_ON(!saved_opts) || WARN_ON(!tmpstr)) + return; + + saved_opts[0] =3D '\0'; + + parse_args("mitigation filter", tmpstr, NULL, 0, 0, 0, NULL, + __cpu_filter_mitigation_opts); + + strcat(saved_opts, newline); + kfree(tmpstr); +} + +ssize_t cpu_show_mitigation_options(struct device *dev, struct device_attr= ibute *attr, char *buf); +ssize_t cpu_show_mitigation_options(struct device *dev, struct device_attr= ibute *attr, char *buf) +{ + return sysfs_emit(buf, saved_opts); +} + +ssize_t cpu_write_mitigation_options(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count); + +void __weak cpu_prepare_repatch_alternatives(void) +{ +} + +void __weak cpu_update_alternatives(void) +{ +} + +void __weak cpu_select_mitigations(void) +{ +} + +ssize_t cpu_write_mitigation_options(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + /* Save and filter the provided options. */ + cpu_filter_mitigation_opts(buf); + + /* Reset and re-select all mitigations */ + cpu_prepare_repatch_alternatives(); + cpu_reset_mitigations(); + + if (cpu_parse_mitigation_options(buf)) + pr_warn("Error parsing new options %s\n", buf); + + cpu_select_mitigations(); + cpu_update_alternatives(); + + if (ebpf_jit_enabled()) + pr_warn("WARNING! EBPF JIT is enabled. See Documentation/admin-guide/hw= -vuln/dynamic_mitigations.rst\n"); + + return count; + +} +static DEVICE_ATTR(mitigations, 0644, cpu_show_mitigation_options, cpu_wri= te_mitigation_options); +#endif + static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL); static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL); static DEVICE_ATTR(spectre_v2, 0444, cpu_show_spectre_v2, NULL); @@ -660,6 +768,11 @@ 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"); +#ifdef CONFIG_DYNAMIC_MITIGATIONS + if (sysfs_create_file(&dev->kobj, &dev_attr_mitigations.attr)) + pr_err("Unable to register CPU vulnerability controls\n"); + cpu_filter_mitigation_opts(saved_command_line); +#endif put_device(dev); } } diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 6f69344465f1..99e4b08ff36d 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -210,6 +210,9 @@ enum smt_mitigations { =20 void cpu_reset_mitigations(void); void arch_cpu_reset_mitigations(void); +void cpu_select_mitigations(void); +void cpu_prepare_repatch_alternatives(void); +void cpu_update_alternatives(void); bool cpu_is_mitigation_opt(char *param); bool arch_is_mitigation_opt(char *param); int cpu_parse_mitigation_options(const char *str); --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011049.outbound.protection.outlook.com [40.107.208.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 E055F3101BD for ; Mon, 13 Oct 2025 14:36:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366200; cv=fail; b=WXWG6TerTGvE5YUYhT5BPFsRbyinAxE3sVE0vadFnmkYsJqZP9VhwMi4qTAi+ldswhrG63bWlLXws058b3jiQH1wHv2l/AeOVJY9ad5/l+LX06t97u/TYD9roqMse2s/BT46K7mSeAPgZuEd+HNaOk4BTqUXqKVE6DarSYHrl90= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366200; c=relaxed/simple; bh=74zPTSod4CoKFGBLkqyJOez2ahI3Uo67EsUEDW+ZaZY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PyIhYKqINbwyGZn2m1vUGCiq3J5p1e4uwrBWUZnwOBxMoyxou2BBECz/yrFZ7hrikx6Vfil9A3vEXAksPxrAuSAaoQiF28XUpI198aOPOW/TX4bxz5QiPRVoQR1afnDjy4et8kCwoUEgTSWhwXl+FDhrolNgDd6tHrlXasR7Nio= 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=Z1oX+TC4; arc=fail smtp.client-ip=40.107.208.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="Z1oX+TC4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gvu1UhCh35l85TebvNKaUhYhxAoHam8UHrfuasdjiueMd1JSDRV0trD/htbM+CVLmLsKqKyavRzQzRsMa6ApAfU06qyrFaaj2CE88/IiGRbS0mvm/qTWNhC15+1HL0bn6pUAG9cKJYuk+t17HTqlRsR++h6GawRkXSMTxI+/6VLmd+ZV6WWT1hpUy5A7SaVojNfq4BjFBQIuubO2intQmw8hbNbH9Sz3RsWpj1l4PIn6MKNHta/K/4zlkUgoipmHXpUrNhcU9P3Gb54m+yOClb+Am/IyDyg3Ke9vuI8BLWCnkm/sR/mUCW5DP8aw0gVtDcU4Mg+XlB/u2gjzp2SoSQ== 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=V3Dw/L+pTKeH8TPtVLB6LVM6wNQcPote4OWrYX7A4I4=; b=pZp83ciTGvUrTBz6+9F3IgawHoZvDt7iRuR5Txtd1P5Jj8cnqGNRdSD9NRxOJRx0sUMVUvkIRRoTsD7K2OtPkr/ZSMuWMn28VwvmwDCewQ7EVJeSamy92Pvcdl5vzsAcB7VDmyDQTATGQFOB8TZXxZHXtioYViOwdnLeWQmHNzhJk1TY+doAoYmnRBaYt5I4AXA3Ctx+eJqh0D7oXQMFKtw10necYadliaRxkizXqDcFuADl11x23AL8k26aDhq9v5MO2M+4nFDFajqlejkkK1I50Xrl5OwaenKHwiaibyiIWDg2f9tpD1y4xbXh7W2JW4uQpQBn9mO7+cAPBdjGzg== 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=V3Dw/L+pTKeH8TPtVLB6LVM6wNQcPote4OWrYX7A4I4=; b=Z1oX+TC4U77YrchosRubdr2zVec8baFgp80eYvq18uEKlkXL5pZ28IDXMOX4U2m191CEay0UZEM4PACpHKgOrVw2wFVA1t2zNjQDpMKZTg2FqFL1ZUZ93AhU3epUTadctLH7B3VzcY8tD5RwDEHXx10KtPLb3cc6TX/nC2D5k8Q= Received: from MW4PR04CA0067.namprd04.prod.outlook.com (2603:10b6:303:6b::12) by BL3PR12MB6475.namprd12.prod.outlook.com (2603:10b6:208:3bb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:24 +0000 Received: from MWH0EPF000989E5.namprd02.prod.outlook.com (2603:10b6:303:6b:cafe::88) by MW4PR04CA0067.outlook.office365.com (2603:10b6:303:6b::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.12 via Frontend Transport; Mon, 13 Oct 2025 14:36:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:24 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:58 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 54/56] x86/debug: Create debugfs interface to x86_capabilities Date: Mon, 13 Oct 2025 09:34:42 -0500 Message-ID: <20251013143444.3999-55-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E5:EE_|BL3PR12MB6475:EE_ X-MS-Office365-Filtering-Correlation-Id: 97858797-c473-4de8-803c-08de0a65e286 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?aJkU9VR+opTSoGP87TXtrZMaOIUl7oIT2hYAsAuRROJJPtorTy/VNw4Ly+1+?= =?us-ascii?Q?b+Y3ITShMtJRSno931DPLFVQwbZ7yGBax0eBVRG+CNlqulgrFQeYpsDXWOde?= =?us-ascii?Q?w5a7UOjBXdmeNjmUs4+tMGQghhJhw5YipqSsJ3ubaaGBVTAT2SvfToCAz4SO?= =?us-ascii?Q?GgdPdOBTWgN6JMQ1ObXD7MVNXfslE6rIlM4Cpai9aRvCfOaJclFuJvZd32bv?= =?us-ascii?Q?hzGtT6ujtTpc9zngkD59F0xA2WGEM7yRqmyR1nfKj+tdPFb1h6Bnw4lwfdxx?= =?us-ascii?Q?NZMSeEkqaw6JogIPdOD9kO/1iH4W1OLCXlUq+Twiec+af+epDxXCEmfMcggD?= =?us-ascii?Q?unoYIPOUBaqtqzegMGGhLcU5mTefiPOYnmqL8EWNkiUQ4+S9vX8Gc/HnQaW9?= =?us-ascii?Q?+/ezKr9SxWcNdLMXdqNunsCY2hseq7+GOndOLQkbla2kXtxNn+pDxxwKqmYo?= =?us-ascii?Q?o2m9RPnaHP5OHM1p9jPEklysrb5I1r7r7YoJw02QH7x3CV4oul7kqvT4SoCT?= =?us-ascii?Q?VrsSSZJjtpFHPn4YpSrS1kc770kYa/NTHxStcIqm8jfhVJYQMUJlRyRLRxJE?= =?us-ascii?Q?+2iYbyLX4xSeGPZjDkTWTb+ZykavySKI8XdjhWQO3u0BgnF9CXxo4dL+zBZQ?= =?us-ascii?Q?xBAGi1NMygtgVu/wQL966OuDNVuD/Ez/geEI8lV20wikmhaHRurXKWH/n1fW?= =?us-ascii?Q?X64V8WMkV7ilhoPp32QbvsEWX8G6EeVAzwPFbOPAZY0IjfqLG84u61sPagXq?= =?us-ascii?Q?K2JZM3r5LacWvX3Koh7iza5CE8BPIrAOEs349xMPAED9SpMHWixcEez+fALn?= =?us-ascii?Q?BKmn1lyuT6ptOd9S05SBp9x/yAKX3C/NfX1vshjhpxGsiAIjg0nhTKqWZ2Si?= =?us-ascii?Q?6w5A4w5wc7P/Y85hs/lQqHNKm74FwGnMLQGQ407L7k+Oozq0J6rmtkLcawr3?= =?us-ascii?Q?dJNa50HjgIIylNjmHOYjfLRtMPITrrIDCoG6UzEEwEuAmpPEvPHfx3uV5E6F?= =?us-ascii?Q?mycQzlM2FjSzb1gNeYPRk/B2kKulqoqGqHreSdau/1p7kUgwdpG+QeYzj1WJ?= =?us-ascii?Q?ApwE5xIcLUNnDXklCyTBYk6buBzj4OSxKar+p9ty+nFwQ4xqv+2pKiuJjTDd?= =?us-ascii?Q?FTbqWSFCROUEb1SNn/qmx8wSPophsjoEl1uHQt1EOq1mTwvmvJfpkUKbU7Z7?= =?us-ascii?Q?DkwkUtZnpkCVpRyhJVctRCzAamD8mxkxJTymzLxJ4SzEQozArOkLjYoDabms?= =?us-ascii?Q?MNa8UT+dhg1z3zvvW2DkaoHIk6pKb9qpy1wcVc6lAXuahCfcLTFli8od8rGf?= =?us-ascii?Q?j0tFdh3UoK6jVI6atz/ArOUbNLi3840xEOmmKfmC3LuAKlXc9Ld98qypEHSh?= =?us-ascii?Q?avuVjojjxTZtjhY2b34UUQiPuuPaOuAFY3cLByPBKw6KsOrr1EtYkPBzWpl4?= =?us-ascii?Q?oYYNu5pERH0Gyd1YMUd+BhwAqSVeMv5beqVQNVTyOcQ9VDJ8Yc+UPba5N5KV?= =?us-ascii?Q?uSJ+xFp1VRpIJP49hOVVJwY1W+4l9Z3TOwIllCvYAtSW9eZMgo6gN+WmeRiX?= =?us-ascii?Q?znXJhFp6VRpIx17lbP8=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:24.0225 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 97858797-c473-4de8-803c-08de0a65e286 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6475 Content-Type: text/plain; charset="utf-8" Create two debugfs files under x86/x86_cabilities that enable access to the X86_FEATURE_* and X86_BUG_* bits. The X86_FEATURE_* bits are read-only while the X86_BUG_* bits are read-write. This interface will allow for user-space test programs to verify mitigation settings are selecting the correct feature bits. It will also allow for testing mitigations even on hardware that may not have a particular bug. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/common.c | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index c37ff92aaec2..1755f91a5643 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -27,6 +27,7 @@ #include #include #include +#include =20 #include #include @@ -2608,3 +2609,61 @@ void __init arch_cpu_finalize_init(void) */ mem_encrypt_init(); } + +#ifdef CONFIG_DYNAMIC_MITIGATIONS +/* + * The boot_cpu_data.x86_capability[] array has NCAPINTS of u32 for X86_FE= ATURE + * bits followed by NBUGINTS of u32 for X86_BUG bits. + * + * The debugfs interface allows reading the X86_FEATURE_* bits and read/wr= iting + * the X86_BUG_* bits. Note that updates to the X86_BUG_* bits may not be + * visible to the entire kernel until alternatives have been re-patched th= rough + * the dynamic mitigation interface. + */ +static ssize_t bug_read(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) +{ + return simple_read_from_buffer(user_buf, count, ppos, + &boot_cpu_data.x86_capability[NCAPINTS], + NBUGINTS * sizeof(u32)); +} + +static ssize_t bug_write(struct file *file, const char __user *user_buf, + size_t count, loff_t *ppos) +{ + return simple_write_to_buffer(&boot_cpu_data.x86_capability[NCAPINTS], + NBUGINTS * sizeof(u32), ppos, user_buf, + count); +} + +static ssize_t feature_read(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) +{ + return simple_read_from_buffer(user_buf, count, ppos, + boot_cpu_data.x86_capability, + NCAPINTS * sizeof(u32)); +} + +static const struct file_operations dfs_bug_ops =3D { + .read =3D bug_read, + .write =3D bug_write, + .llseek =3D default_llseek, +}; + +static const struct file_operations dfs_feature_ops =3D { + .read =3D feature_read, + .llseek =3D default_llseek, +}; + +static int __init x86_caps_debugfs_init(void) +{ + struct dentry *dir; + + dir =3D debugfs_create_dir("x86_capabilities", arch_debugfs_dir); + debugfs_create_file("bugs", 0600, dir, NULL, &dfs_bug_ops); + debugfs_create_file("features", 0400, dir, NULL, &dfs_feature_ops); + + return 0; +} +late_initcall(x86_caps_debugfs_init); +#endif --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012060.outbound.protection.outlook.com [52.101.48.60]) (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 6EAFB30F80B for ; Mon, 13 Oct 2025 14:36:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; cv=fail; b=fGtM2ImJrbCZE72JgOE71AzJ/Sz6M0AdloMm5dhMvkKu9hilXOl6edKLBIMRbJYUNlHUgr+HQOTja668kECVXzMaI6dLoCCvcTHsw6ppbxVjWdtCftDPtAycBJzsxrhbY4JW933qbnKdEW1WGa/CyZR/U0b+q85g5J0AwWSpXPw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; c=relaxed/simple; bh=HReV30UOFbiLK7t+8yOh9IHXWvZXl1+eVoRoFY1xXw4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aeDFYg0K+lNyhfYt+77wSYuGdZ/rXEQMp+wmxsgGn7DClto4M6UrkcOJjt7I95lHuGpYKeyBqlF3ICFuTbdYkcyMyhMQbpx5g98l9pK6mCmMgYtUYoyc05gdgtGsYpTzlwE6fcaMGCMNNi/NkSvyXILEpqFl8e88HiBcvhRdfO8= 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=KEvc2bPd; arc=fail smtp.client-ip=52.101.48.60 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="KEvc2bPd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wIoEdPVkLo51B9K0Oo3R8rySuaJIeKRbcUcVbkKir/lJdqDCgy0sCfEcowm2lkyGI3yg/SkF4gnwZOSnFEblnhh79Z8IN1BM/ZTVHTS9xHKkkaF/eiJKOsuCv8w84ik3K/4zftRv89zzdFd58W0RaeGumymBRGfZpk/BarZN8fhWgZCC8u7l/7rMOg8HdgIwkI/RwR46JDNBTs0w/bGVNBI2sjgrdo59zb0SSL2FYhPXzXFlD6QJfH1NRO9atrGyCr31w1ych1VAkn/dgqbTdb7EkVppnId9Q++5tVjU0iUNGSkiA9nzQal3r1wvjAwQIEf1KTH7BTzv7v1G/gel1w== 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=eALRM1KECLYnou3vIiCCjZ4royw8SXH4Gx22QGRG5jU=; b=J1h2xaetxklkPBhlq9aFLOj3BVKrROpN86aiKDvB30+JuZxlFaNlJuWgQIttsFBSsEgXH7DXtF6xMUTVT2ybsv16ByytwXizzYD4gLdmp20DIafsbQ36Bm7l7i8B8gkpmiBCORikrR70kLPbRd3DRvOv2V1e6WhIm+c127KvgS4OeLjaTspV8RZDfc6v7aKnnT1Wsp4KGMn4wd/HBjFiYZP6n3imohaNbPMpYFO2w8iThuP2te4sI2WrrYUf2WXfDQaOd7lBtLjPfTh+9T28nBNzO5DPQrWfoe7QaYvXGm1TBtpHH4UiUIbyRukmp64Eh9crVLQ8p8yP1uwwgHWA2A== 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=eALRM1KECLYnou3vIiCCjZ4royw8SXH4Gx22QGRG5jU=; b=KEvc2bPdEcF1fkegGS3L7t1MLecfmZX1RrQ8kJz0eDsJvfukW5bKZI/EPUlgKcVmLWFDX1x+rsBk9CjdYNLp9imAvvNsdcREQq0TQRiX81OTlZhPlkxf7AnnlullBawsVPCCdCFIPd2V2DGMMqa+/NkTUdgEVfNd9cVcaH4FuU0= Received: from BYAPR07CA0067.namprd07.prod.outlook.com (2603:10b6:a03:60::44) by SJ2PR12MB7896.namprd12.prod.outlook.com (2603:10b6:a03:4c6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 14:36:25 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:60:cafe::75) by BYAPR07CA0067.outlook.office365.com (2603:10b6:a03:60::44) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:24 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:35:59 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 55/56] x86/debug: Show return thunk in debugfs Date: Mon, 13 Oct 2025 09:34:43 -0500 Message-ID: <20251013143444.3999-56-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|SJ2PR12MB7896:EE_ X-MS-Office365-Filtering-Correlation-Id: 3208866a-09d6-411a-31ba-08de0a65e2f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|82310400026|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?WornSYJDTmuyGVWqak8+eTKUBgfAs0YIP9FyMPyaS3uHvUBQYrIjr/S1Q0wB?= =?us-ascii?Q?6lRAmxjyb2qk3CcwA+DhqPu0M/sJ2AZ9esclxIBNzrf1x33o12MMKNeilE2S?= =?us-ascii?Q?+SeKtlYhovCYmGJJQd1C8OoqLuNlNIyIj4RjX4xHJDupcBuE4Oi04uCYmUeA?= =?us-ascii?Q?py/K1BuHzIlAFHv2OABuneBJmYOsG3AzUrBmYMh5TQ67CmrDpLJDMYMNrGQA?= =?us-ascii?Q?dOtbyXhwY/xzGvQ8KN9GU4UlLz76Xv54ScfmV6aAtPK1qym3hqmk+K1gNMny?= =?us-ascii?Q?cgLQxpZ/xrAiTcHOccH3M87o6Ot+wLHgnCsMNGtSgWqpFNDy1rwM6y11vp5y?= =?us-ascii?Q?wmNlujqnSVcWfJYapPN9FH0/TmpHcolNIqWdma7PPW/2ShK0YfHH9SR5a40b?= =?us-ascii?Q?xBUMS7Fy2t0B5Dus3kczpPIIGjlQOK3TjalHxxlY9LIe55nrKFSxFzubJuFT?= =?us-ascii?Q?pBbHGJBuWJYQ9hGkic6oU2hyp36a7Idf1KdBl6RgaEnlIh+lf0LqVLkMXuu0?= =?us-ascii?Q?ACYxfCPLTeBBn5vmh9im6jBy6fOxzNN03jlDEeDs7mSR+ksU6qaPGME1spKB?= =?us-ascii?Q?EapZvV+IyFPkbAsYg/ImiUTJ57alocsvHqoxiKdXogfTZsh3CainBeIIiz8i?= =?us-ascii?Q?KR7FDdAb+NENo0s203C4ZA0DjG5yhwQ/UcszB0x2myJzJZ2TMAM3VAIeI3W0?= =?us-ascii?Q?oxbrEyMj4c0Wymobo+htcnKB6WmGKZjQJ+UmFs5rDeGmg3N2vT/FFrfE1ppY?= =?us-ascii?Q?3UNtATS8nK6YiLm6fmCEgAHxTXY5HwgzuLWYqVl/XIXubO7IuzLz0guL7OQQ?= =?us-ascii?Q?6Dl2b9/qcUxwmkfP8IKu9fAxWicPSfs2UvVmI79K+9h3imjLsbAqeWplz5YU?= =?us-ascii?Q?NtaRbzPoWdkeq0ZT33F2UDlKjsz8AnOQxEvWvCyPOzjzbYw+6ID0RLRC1n4p?= =?us-ascii?Q?yyngRR7mDIs9ugVW4ugR8SUa727ZCcytcJNLQPmWEYCwGL7cFmwnVOzzf7OU?= =?us-ascii?Q?ZnyCWUG12GYL1xBHXPyEQhrtRXbXzEfJ6/obt2iqKuFfir9BhsRi+Glkh/qN?= =?us-ascii?Q?f1K5SWK5bfg4if9YcvBbFC2cHP3rhVxTNsO7YC5d/ualCRZfufszUs5Vmo9A?= =?us-ascii?Q?Xjehbhw0kvAIXlM6B6hMxwQr/W7XVqxlLAwD1QhEEJfXWrPOUmD6Mb29s/Ry?= =?us-ascii?Q?moXgZeYsjNvBKobWiV/x0S54OcDeeVIc3Ls5RCn55WGcLw8kiER8D/TcCyab?= =?us-ascii?Q?MiKBzujvpgpMHNFgGhmtLDNnyfp9dnEeTmUN31Wq46kJmkRQZdtruQwcAtoJ?= =?us-ascii?Q?aHbH3OETYyIiYxhuB/q5elyFJj1jg26c5AkMdu4Hh1Thw1iHvLy9ZBplIFvO?= =?us-ascii?Q?2eulCKtKm/h0AsoZ709ykujVWcnzi8pB6t6XuOepHG7OKw/3UMYRthVxZzSF?= =?us-ascii?Q?LlnebNgCY8WGoKbS4hIE0d1Ek2GX2l7HB2k5Xwo4MKgSgqD7nLlDOtV/CTiF?= =?us-ascii?Q?XrEJSGCO0ASUMF9J3nSXKLS1ckCtvCtLU/QOYnHKYss3FMau0c1eOerTeu1z?= =?us-ascii?Q?iFk4sUwUXtyFJ0fti0k=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 14:36:24.7744 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3208866a-09d6-411a-31ba-08de0a65e2f9 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7896 Content-Type: text/plain; charset="utf-8" Make the value of x86_return_thunk visible in debugfs to support user-space testing. Signed-off-by: David Kaplan Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/bugs.c | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 26ceb42e0cfb..8365448b3aef 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -16,6 +16,7 @@ #include #include #include +#include =20 #include #include @@ -4065,6 +4066,49 @@ void arch_cpu_reset_mitigations(void) tsa_reset_mitigation(); vmscape_reset_mitigation(); } + +static int rethunk_debug_show(struct seq_file *m, void *p) +{ + if (x86_return_thunk =3D=3D __x86_return_thunk) + seq_puts(m, "__x86_return_thunk\n"); + else if (x86_return_thunk =3D=3D retbleed_return_thunk) + seq_puts(m, "retbleed_return_thunk\n"); + else if (x86_return_thunk =3D=3D call_depth_return_thunk) + seq_puts(m, "call_depth_return_thunk\n"); + else if (x86_return_thunk =3D=3D its_return_thunk) + seq_puts(m, "its_return_thunk\n"); + else if (x86_return_thunk =3D=3D srso_alias_return_thunk) + seq_puts(m, "srso_alias_return_thunk\n"); + else if (x86_return_thunk =3D=3D srso_return_thunk) + seq_puts(m, "srso_return_thunk\n"); + else + seq_puts(m, "unknown\n"); + + return 0; +} + +static int rethunk_debug_open(struct inode *inode, struct file *file) +{ + return single_open(file, rethunk_debug_show, inode->i_private); +} + +static const struct file_operations dfs_thunk_ops =3D { + .open =3D rethunk_debug_open, + .read =3D seq_read, + .llseek =3D seq_lseek, + .release =3D single_release, +}; + +static int __init mitigations_debugfs_init(void) +{ + struct dentry *dir; + + dir =3D debugfs_create_dir("mitigations", arch_debugfs_dir); + debugfs_create_file("x86_return_thunk", 0400, dir, NULL, &dfs_thunk_ops); + + return 0; +} +late_initcall(mitigations_debugfs_init); #endif =20 void cpu_bugs_update_speculation_msrs(void) --=20 2.34.1 From nobody Sat Feb 7 02:15:01 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012023.outbound.protection.outlook.com [52.101.48.23]) (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 9D22230F814 for ; Mon, 13 Oct 2025 14:36:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; cv=fail; b=j8J3bxL1ZWCmT4u8h56R81yEG5ovTUQlIgOUQB90NPlScY7VX7GdsSzqhPbmlSB56HV1GY1gYAFo4zbLCnPhu01gNzek7r8oWS5n3ZYlt/B0BeCEVXiGo+kqYcyQndQtlj2qUQkTm72qkPK3f0Bv5viAOogn4AxYb/hmYlwe/t0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760366190; c=relaxed/simple; bh=RHcBmdsABVJE53SAWwu/4MfIqKbpZLNXER7TChbpDG4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=clFZRKO7ERcO6ypb+QOI5iQ72gdydXH9fk4VVYclhNNMHAg1JMbJLTj45Jg6mW14B7WjgU8pGlSsJaP7Jb6bnsyHwrco/gRaq0zkB599XddBODDY6CoWYfCUBJMMPwtgrc6jzjg25YOHl89+4UTa6ojyoFm1jFD1FVOQ99/m5Kc= 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=k3qIVHWc; arc=fail smtp.client-ip=52.101.48.23 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="k3qIVHWc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lzf8+PhRaMr9F/aUndsv3rNMyfE6yvXC+GpdakuBhrjxq9XWkfUmu4S0eC0CfQ4bZlJSadrqdg+2v9V4zF9yfGz0WzAkCHGmsDN6ov1K5T7YFIhE4rYVdQjb2WHrgwDeMbqchde4GvwJ6GhTPXtANz+BT+gouSWfCnHVEH2ZkLxcrzlJ0ucPLT+LhlKTv40zaGjGudEA3PQXsmrn9KwmgMCNrwwunU7G+rHp6q1scxfemEHNZsqn6LoOD698WpBlMth0lYIH7sopbUbIaOc83YRcjdK73P1gQPpZ3YJMEFNhaqUs0S3uXngLbsuhDGGTo5T4U8MapTsv0/3dE61hVA== 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=JkkDpjoqg8u3YC3zDlW397pJcnl49MVaAJ0my+llZ6o=; b=a6RUsSJ7DmYygmWhRxFU9l90hVfGzoCTMl81Mz5EdzTq+y93ni+yt7aygL9Ttv5DTOocgKw77EkmfPLsf9LLHxJN5Dg88JIMhs05OM4CrzyIkuB5Jvhy7Y7kKV9UUpvjcxgndOalG042yGOUc7EEXPMYK5XIN1oErFwRu4HMjI98h8X/j+ET8WF7pQQ0y8bgsKNh2t4DLaGm78siyWTTT0CnVnlaqjslocjElX4B7QTy0qfouZRV9poMw06JBPcO1DPyi/qdKxLjo8RBl+poLhzgopYwwljwSccIwFdCcJ7tOSiov+jLEENvNyezhqMi60BddqylYge1LbB+odykjQ== 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=JkkDpjoqg8u3YC3zDlW397pJcnl49MVaAJ0my+llZ6o=; b=k3qIVHWcKI96Ap4LBTWUmK41T1MgUOTDuqp8Uyh9jaxvtA1+T5r33/NYCJLT11CWutMjZCAuL7qjZRahYVJSM5xqTHvzry54Pz2Yc8q/1/D8pXTbbwfAygjslfNhFh0wMzPUMnrdf/OXDWZA5BC6DCmuFBThD6TStcpRNgnKodQ= Received: from PH5P220CA0002.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:34a::17) by LV3PR12MB9188.namprd12.prod.outlook.com (2603:10b6:408:19b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Mon, 13 Oct 2025 14:36:26 +0000 Received: from MWH0EPF000989E8.namprd02.prod.outlook.com (2603:10b6:510:34a:cafe::4) by PH5P220CA0002.outlook.office365.com (2603:10b6:510:34a::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.13 via Frontend Transport; Mon, 13 Oct 2025 14:36:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000989E8.mail.protection.outlook.com (10.167.241.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.7 via Frontend Transport; Mon, 13 Oct 2025 14:36:25 +0000 Received: from tiny.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Oct 2025 07:36:00 -0700 From: David Kaplan To: Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Josh Poimboeuf , Pawan Gupta , Ingo Molnar , Dave Hansen , , "H . Peter Anvin" CC: Alexander Graf , Boris Ostrovsky , Subject: [RFC PATCH 56/56] x86/debug: Show static branch config in debugfs Date: Mon, 13 Oct 2025 09:34:44 -0500 Message-ID: <20251013143444.3999-57-david.kaplan@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251013143444.3999-1-david.kaplan@amd.com> References: <20251013143444.3999-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: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E8:EE_|LV3PR12MB9188:EE_ X-MS-Office365-Filtering-Correlation-Id: e3ed405a-b8b8-46c7-820f-08de0a65e354 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?WY9Jm+bK0ov8bB8hYcBUfxCm04z2Pr/I8Hez/1nSu06DMY5CpTih7gaqalq7?= =?us-ascii?Q?snQedutMqyp69xXm35vEOjGvNc3tva5A+y4PQQavlgnMSKfLeYkiAryDJKem?= =?us-ascii?Q?rIsgxuZFv+ByVoQg4TLMRgJ5rUvN0MA04iPQpb2Rtnl4vyFn80VIYkmVSlYt?= =?us-ascii?Q?Mv1x249gR6QmveYMBisLJ6g9NSAEPU0T2kFrjwilVnN1TGp7ugb3ErlE8OWJ?= =?us-ascii?Q?ZQoe3gQvZgtE8hVyL+VjEmJ3yoCYVYtart1YHbvgCRVMe0O9NcWdrpxU+r3L?= =?us-ascii?Q?tVNrD0buHJhyDw5vEGZGLojltR9Z9mga9/+Fj4fgWRdqhI6gtY/M8mPNFRLf?= =?us-ascii?Q?pdjiOyDTr2bGlZ7oA0FMlq6mGi3zjz0zXrbdew8hcSjtnhL3nMTxXGYG+6o5?= =?us-ascii?Q?JL864Q3zyDAn4okPEtEd9qZYofu5EDoSsWTorcxWa/sFKi0MwDZh0MFr5zdq?= =?us-ascii?Q?SqQqRQTlnmtNdf0xbHIQ9yQia+8yHrglgw/CZWL+faX865yDbnaBIhOcEF4L?= =?us-ascii?Q?PdLYIAFW8AWLPeeRciIh7AZzsovBziGi1NMTrmknockrRm7rYHS1HwFDt1AZ?= =?us-ascii?Q?zG9zSYbokcu6JNvI+TH9d327n2B9+WxW6Nr43zI1nBBrT/2+/juz/qH3IOKT?= =?us-ascii?Q?TJWZrvCy31xOgPZer1XP5PpijzDjni3iu/u8bKkGnQ4ztz88IKESUM1RpTNj?= =?us-ascii?Q?1qX1ZKQVuomL1EQXcA5qsGli6/7iUQ+9juD76Pfp7VPFDERNcHqdUt9LaiRY?= =?us-ascii?Q?JdLg1QwGdUrjyzb3Q+PCdhiXaeQUVEkcx1Ia6tdlVL3nzBqO5+hb3NMQXixx?= =?us-ascii?Q?4WjrwmBm9ohA2MacYP3NtkbHW67GZqow0mLFQ8yGOIF+cMNcaMXTyhKc1DEq?= =?us-ascii?Q?71i7BvcnqRa7C+1btxMcnrbcOlFNR5DZtgrQm2BsDLQ/hrIINCHDkUgRbmL/?= =?us-ascii?Q?GoLa9FGffT4d0u32Uw0HtzBECo+6EjL80wsqEwknWTNJ65biWVpPDPov5kh5?= =?us-ascii?Q?U/A689ieHx5+gCIIoW9E//yGKVL80i9uiYUNb/uWvp/GyfKzBjS4gJ/g3/52?= =?us-ascii?Q?A8cBLPXj9N15Hun+wOxCUfft2Ck3p37te4L+WdSiwlhFQxMEvQ/xYziucdRP?= =?us-ascii?Q?+n4Jy9jr8TbIPVap6T9HwRj3pruxFXAeiZkWohZACU5P3LYObcLwDMZFKHYL?= =?us-ascii?Q?IRi5jYn0sCXlBv8epxY1Iu4KQzbSTPepHsIoTDXU3op4ttMUHMCUyZZD0Y5O?= =?us-ascii?Q?kQGMAKxgnTQzlEEEYoavYY4mDGkBFVzLnYy3xAIG3ZnB89Xa+N9f+lNbIBxE?= =?us-ascii?Q?RG1asWG5coXzV5ghgnyYiIUaX68GSR/W2DmEZbWZtLd95Bx49GyKrWMhKaeP?= =?us-ascii?Q?mFsgxxh7EkPufnkD7TeyKp3BXVh1Re+mQ9hwqx9F3a4lC27o9/EhgeiXdaEb?= =?us-ascii?Q?516kidDu4cATMwlMmYRjBtX4mvCOOeY4bo7hKG1DOB6CXgc/PH+XJXZjvhB1?= =?us-ascii?Q?ANQ9mXvdnRHI7ABG9dB+DOgPdQamxi/N9g3xDgYgnGKadj3NF+PBL/gWCl+4?= =?us-ascii?Q?nLPaKXvG0yaBTqQwCT4=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.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: 13 Oct 2025 14:36:25.3738 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e3ed405a-b8b8-46c7-820f-08de0a65e354 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000989E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9188 Content-Type: text/plain; charset="utf-8" Create a debugfs interface showing the current enablement status of the static branches related to mitigations. This will be used by user-space testing tools to verify mitigation configuration. Signed-off-by: David Kaplan --- arch/x86/kernel/cpu/bugs.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 8365448b3aef..eeb7d50332cf 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -4099,12 +4099,44 @@ static const struct file_operations dfs_thunk_ops = =3D { .release =3D single_release, }; =20 +static int static_branch_debug_show(struct seq_file *m, void *p) +{ + if (static_key_enabled((struct static_key *)m->private)) + seq_puts(m, "enabled\n"); + else + seq_puts(m, "disabled\n"); + + return 0; +} + +static int static_branch_debug_open(struct inode *inode, struct file *file) +{ + return single_open(file, static_branch_debug_show, inode->i_private); +} + +static const struct file_operations dfs_static_branch_ops =3D { + .open =3D static_branch_debug_open, + .read =3D seq_read, + .llseek =3D seq_lseek, + .release =3D single_release, +}; + static int __init mitigations_debugfs_init(void) { struct dentry *dir; =20 dir =3D debugfs_create_dir("mitigations", arch_debugfs_dir); debugfs_create_file("x86_return_thunk", 0400, dir, NULL, &dfs_thunk_ops); + debugfs_create_file("switch_mm_cond_ibpb", 0400, dir, + &switch_mm_cond_ibpb, &dfs_static_branch_ops); + debugfs_create_file("switch_mm_always_ibpb", 0400, dir, + &switch_mm_always_ibpb, &dfs_static_branch_ops); + debugfs_create_file("switch_vcpu_ibpb", 0400, dir, + &switch_vcpu_ibpb, &dfs_static_branch_ops); + debugfs_create_file("cpu_buf_idle_clear", 0400, dir, + &cpu_buf_idle_clear, &dfs_static_branch_ops); + debugfs_create_file("cpu_buf_vm_clear", 0400, dir, + &cpu_buf_vm_clear, &dfs_static_branch_ops); =20 return 0; } --=20 2.34.1