From nobody Tue Feb 10 01:58:52 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1770160109; cv=pass; d=zohomail.com; s=zohoarc; b=Q2n4xusNCEYPmARAsbkm4UTYnKCWAeXftkGuhtd8ZWOvLToq/XV6MKiWBZGE+fT/Ol2k494JmtRbnvRJ378+6BIQqSC8s5jQVn1Ybe9RBMBIJkjx0euCfv4F6p4xKy3r28iJ6MCM4N8xPNgz12NbrRQEVdQzttVXSzOxuuVHl/o= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770160109; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RGuhRgy80JmJPp5zr7235mr+Lh7xOYWvGliDQSZ3vn8=; b=mbVVWhl0Vg91msviUMZ3BkvKdwkKvuVetyaZtuBBXPLsMQ7jHknB49wx6v643TayeSv0fhz/ZQmw8jVSOnl0tvxCCxgB2/ddLjU8hF1Bq5Q83W1PYmS1WinoBQf3ZarHc7Jq/o4Z6cif3N9uHRtWknHiQt8x5USA8lkkmJCN7wI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1770160109253738.2943290303347; Tue, 3 Feb 2026 15:08:29 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1219745.1528626 (Exim 4.92) (envelope-from ) id 1vnPVF-0008Rg-6S; Tue, 03 Feb 2026 23:08:13 +0000 Received: by outflank-mailman (output) from mailman id 1219745.1528626; Tue, 03 Feb 2026 23:08:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vnPVF-0008RT-3p; Tue, 03 Feb 2026 23:08:13 +0000 Received: by outflank-mailman (input) for mailman id 1219745; Tue, 03 Feb 2026 23:08:11 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vnPVD-00088F-8f for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:08:11 +0000 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azlp170110003.outbound.protection.outlook.com [2a01:111:f403:c107::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 34cf5839-0155-11f1-b161-2bf370ae4941; Wed, 04 Feb 2026 00:08:10 +0100 (CET) Received: from CH0PR03CA0272.namprd03.prod.outlook.com (2603:10b6:610:e6::7) by IA1PR12MB6482.namprd12.prod.outlook.com (2603:10b6:208:3a9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Tue, 3 Feb 2026 23:08:01 +0000 Received: from DS3PEPF000099DD.namprd04.prod.outlook.com (2603:10b6:610:e6:cafe::f9) by CH0PR03CA0272.outlook.office365.com (2603:10b6:610:e6::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue, 3 Feb 2026 23:07:55 +0000 Received: from satlexmb08.amd.com (165.204.84.17) by DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:08:00 +0000 Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb 2026 17:08:00 -0600 Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Tue, 3 Feb 2026 17:07:59 -0600 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 34cf5839-0155-11f1-b161-2bf370ae4941 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bX/dXpJu5OZ0eIu51neos4M3tXM7wYXB/QmnVUJPnjlYiVr0u/YFEZml5CgQZQUOjNhzCBgyUlPasxvWbOCOmncVs9GpOujra5B86lt/RMW0IU9GLBWyGi1HnnqPi6h3W30Sll7Q/vOm+cNsDNz6fuvQwnJpawMEhK1RiPAs4rBVVutFR/oXBKFEfQijjM7/la6gJjzgrbgcGSC+xw33oon1Br+Mx0/FssW5O3kaAxsQauL6b4vsNV2/Spq7w1cBW4xyIGYzyFs/qI2yA5XHrlPieaR6+c2jBEM7d6/4SQ/WIsPbsyJq8vHt7Guv1dyFodYFZfu/VRnFe1m6iT8Jhw== 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=RGuhRgy80JmJPp5zr7235mr+Lh7xOYWvGliDQSZ3vn8=; b=O/FAjKLYEdnS8L6lQVGRmA2XpwdMzlPIUj6bavIn5j3qosRYb8VFEnBehCkF9bHs5AKebqG1XghgeMviMx4TA8f1jOiRtdEDJ3MoG0DKd+nh8jvMl6b5VHozuwDoaiibTv+8oN0LupJo6+T6gbhSDTV51NC+FcADZNS+jmpz3AuefGS13bUWMoq3iBBqALnTxDitpuD2jdCrEa62xUVkfDNO2nv6AvoUJYBiZLzucEpki7RdAW3+Jyw/uxSAhCObX2Is37djHkc7R6lS2bthxKn4pksY4yViZ9GU915iGVC/OSMBzY5J4iBFB80w2JVFOt5K1mwGgUUYqqKYfqPK3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RGuhRgy80JmJPp5zr7235mr+Lh7xOYWvGliDQSZ3vn8=; b=d1L0QWG3U2X6xLT9me1lhJG9wSNNJ0Ma4UMvqjNpjY1xnbClzgpYlS8Fp9mPXMm9i1m5SYMZXtta8DCg6mmqulMpIX1IxMiQPFLC66d67393RLTUXEGv5GD0QUwD+4e3u/EOkb8baV03K2wa1jRXqnlWkt7xYln7HyaiXkOFKUU= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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=satlexmb08.amd.com; pr=C From: Stefano Stabellini To: CC: , , , , , , , , , , Stefano Stabellini Subject: [PATCH v9 1/4] xen/console: use ACCESS_ONCE for console_rx Date: Tue, 3 Feb 2026 15:07:54 -0800 Message-ID: <20260203230757.3224547-1-stefano.stabellini@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099DD:EE_|IA1PR12MB6482:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d101a7b-5d22-4436-7c14-08de637913d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tm2dD4oAaFvm9/KqxTTkKTI1F95WJyhfaT4ALueHWgMqyF/rzUXTrEYBJRR9?= =?us-ascii?Q?ylMBNgoMp9JAlSX+X4WEuSG8eV4s+Q1YuZqoscZmEG8txPePGkr2kP6DqEW4?= =?us-ascii?Q?+ISx5g4hJZjS50ZpZDJ2pkHGom1oOyTxrqd0ucIzwYAD6l0zD45U921KzB7m?= =?us-ascii?Q?m3jB37xXXFJLuN8hWFJnifjcAAk8ICHPx0qTa7sbIO7k9v+EAER8Dc+KLqCY?= =?us-ascii?Q?VIjpmdkOdIF/zb6vOk98jiFtSRWfpr6lsQjKPAOvBRdW8Jy/PdcOQu88B27U?= =?us-ascii?Q?NmUT32OlSgza3Xof2ulMs6b8Smna2KoxcN994OLKedvbVqYf4BNkOPBIYn0Y?= =?us-ascii?Q?yVpFrwiGeBG1MeSLc4GChhabN8x/7pSoNXgFpYvUzdtyPIIN8M6saO5lvDGP?= =?us-ascii?Q?PxfP0/WiBhyWg04EJAKDqziKvGwHvxyREyjicDFvDVhmBbUKOSWWWu5pyQfz?= =?us-ascii?Q?r1mjaHX28oOqGPxG7ysxkM5o4ob2roAvJqgGpYnx3FzAHwxPkxVo1jw72coj?= =?us-ascii?Q?45UBNMeeLMQ/cedJ3o4N580CcKi6EKvDYPwjqEEHeb5u21X/M+Dr5xMtDK1v?= =?us-ascii?Q?VNTyG9gUDktDTdk8vnVGVScjtokKPNMblVoUmidpgi6w+Clfp1Uja5yq58Ej?= =?us-ascii?Q?xSvBMO1yjq/eF2ojWxLWmxUc4QmYoQpAjrzxDLOhIRBq+pbWcUuEAl/oWuHI?= =?us-ascii?Q?JfpvdYs3lBCnVxjFKBLvTIDj9kcU7X1LYSU5NK15dZFjr7EYcfc6I9I7Q+Z8?= =?us-ascii?Q?vvcT3Ux350GLj2xgkM/oYtzud3dHfrc5tcgi9PjA1XsCxD0XzuuasbhONJGH?= =?us-ascii?Q?sBQBBbp0wK7quVBwfQtZEBl7VYnObedFSXnDsZW9/0XsDn5qrNWaL8kVCJgo?= =?us-ascii?Q?goS4cwJuVMNYYzDffIzyQlNALk6AYh3rzULD3bOoJ7dTyoBP2u2LjvkD3rK2?= =?us-ascii?Q?7vJvhZPJzFG4uBZ6vjMROTe1rwvM1av6nHuAIzHglBxMZ2kWoEUG+HoIh9vJ?= =?us-ascii?Q?E/uUggLiNuKCv7WJWDUQnjc63wDQ4pDer5atwRVOE749SqfXWExphd9m5XbA?= =?us-ascii?Q?6QGOZdiKox6qjRWPReQ0TepgELpZIDhSO9GmtdG2m2URok0VbTjXDYRjrqUW?= =?us-ascii?Q?CQ3gROZZqSAqnbmAnYa38YvY9fWgaQlKuurK/xT+PErq5Tyv+ea5ClzWHCMl?= =?us-ascii?Q?VJf5de7ipGUnPcWJNZnS4iixyF/Kv1vXzV0kBjvjExQa1YDIbn8y9WA35ySI?= =?us-ascii?Q?0IZ68DC+KNTJ+NwjR/1OM6n0Jewc/TnkMBFJ1Ec9EHawndBgY3nHtCfYQXJv?= =?us-ascii?Q?y5PV3PVvzHtEhv49ZVdHhBKck6kRD6/WuvEbA2+KidASE7sE3dzjmuTV8Kzl?= =?us-ascii?Q?OS2n1wJMRl2OeQhCv5d5caQcl3YCxS8h17s6BVA2xMdjogrSSi9LHD1tRmRH?= =?us-ascii?Q?BXEqbIos4XeN7jnaW2+gdHIHWHeK34TX4BwWWxWQ65mZ9e1GlbV8LE+GJ9ls?= =?us-ascii?Q?HCtOOyE9moXAqItH8wVgYjy2+WE4/GJKexLEswbmrtRz/+uXtbGCHUyYUX2W?= =?us-ascii?Q?KTMbjXRAy5rB+TVRm1mdGTw4bSVMyHOY4v7AMqzKiN9lzuAVW4PXlQBmYNWU?= =?us-ascii?Q?f3gydDCbBfyJH2ZPJ63XFNPdyADYAPFP60l2eVlhgm6cEMO9uc3JeJNJpkSg?= =?us-ascii?Q?VNDDKg=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: aqN/Xc2/LbKDGL4XFN9Jg2SCy4gkMDJ51y6dNucdJdjjHele8yh8LA0Lc5GA1zk/PwVVew/FStN+6s/cYjrxEbnm//hxHArHMGmw7F1YrxIJQTj5MuYe2obmkNHuqMQsjYhdQRijJY+g+D9VR7vHg1B2fuW65x2jpMIqrgcY3NWGsLLY0bmcV6hR83IPPmBZXMDhLHBkxmQ2b+kh+foBDSuqV7qOH7dQqn13sdBGUOEnj+GNSwmBtakrj9TULOMZNKq9GiJmljC5tVmwPbjbrEe7cM5LRBXEvoE13U1zS+RqLdgUp4EUCHoTho99BxF68tuTTgfIefKR9dF4cJaID692sHwaeYjS97rKtSH2f8TRX/g/3DPvFZ+lSHYs/Adn5WbAbHqYLCqazxamsBtUS543BW3PTgYafpWMoDwYh0wR6k/BvQ8S81SaMN9iVR9i X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:08:00.7772 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d101a7b-5d22-4436-7c14-08de637913d7 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=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF000099DD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6482 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1770160111319154100 Content-Type: text/plain; charset="utf-8" There can be concurrent reads and writes to the console_rx variable so it is prudent to use ACCESS_ONCE. Signed-off-by: Stefano Stabellini Acked-by: Jan Beulich --- xen/drivers/char/console.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 2bdb4d5fb4..35f541ca8e 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -518,11 +518,12 @@ static unsigned int __read_mostly console_rx =3D 0; struct domain *console_get_domain(void) { struct domain *d; + unsigned int rx =3D ACCESS_ONCE(console_rx); =20 - if ( console_rx =3D=3D 0 ) - return NULL; + if ( rx =3D=3D 0 ) + return NULL; =20 - d =3D rcu_lock_domain_by_id(console_rx - 1); + d =3D rcu_lock_domain_by_id(rx - 1); if ( !d ) return NULL; =20 @@ -542,7 +543,7 @@ void console_put_domain(struct domain *d) =20 static void console_switch_input(void) { - unsigned int next_rx =3D console_rx; + unsigned int next_rx =3D ACCESS_ONCE(console_rx); =20 /* * Rotate among Xen, dom0 and boot-time created domUs while skipping @@ -555,7 +556,7 @@ static void console_switch_input(void) =20 if ( next_rx++ >=3D max_console_rx ) { - console_rx =3D 0; + ACCESS_ONCE(console_rx) =3D 0; printk("*** Serial input to Xen"); break; } @@ -575,7 +576,7 @@ static void console_switch_input(void) =20 rcu_unlock_domain(d); =20 - console_rx =3D next_rx; + ACCESS_ONCE(console_rx) =3D next_rx; printk("*** Serial input to DOM%u", domid); break; } @@ -592,7 +593,7 @@ static void __serial_rx(char c) struct domain *d; int rc =3D 0; =20 - if ( console_rx =3D=3D 0 ) + if ( ACCESS_ONCE(console_rx) =3D=3D 0 ) return handle_keypress(c, false); =20 d =3D console_get_domain(); @@ -1193,7 +1194,7 @@ void __init console_endboot(void) * a useful 'how to switch' message. */ if ( opt_conswitch[1] =3D=3D 'x' ) - console_rx =3D max_console_rx; + ACCESS_ONCE(console_rx) =3D max_console_rx; =20 register_keyhandler('w', conring_dump_keyhandler, "synchronously dump console ring buffer (dmesg)", = 0); --=20 2.25.1