From nobody Mon Feb 9 07:03:06 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2045.outbound.protection.outlook.com [40.107.220.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A36A253954; Tue, 3 Jun 2025 22:20:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989211; cv=fail; b=uapT27MscRfFvgH5fg96Wu7Hg2UYjyxpXSJFaP8CTTlE8KyQznJSQZqLkvagdSNOJwCSYfpSu1EF+3JytkTZ3QNBlCT7sBtEbLFIouuQTTrGY0SKXDTmZk+3YO7bsjBPKls18XeL1ZeGj5KxMzZ/5fJDl8kdV+I27AeKQXkN9K0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989211; c=relaxed/simple; bh=TR211uIyimTL9/eaHPNjsoUpZ5KgH0uaRqinawUN7nA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jgH8GE8YF8AH7Pt4MDGTV+MIPybM1HOHG0ohEeKagj9DHtLFIOjHn76P+2MEXPbBlPgZIo2qe70UzM2aUEMXEIPL0ZDpNj2rasrZGLMIE8vcXmyVHm7fZ6jdYKXdXbQQLUG31LB1wWEMaxx9dPqnBPyRxCplBvIp6BpFllH7CH4= 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=eEDVdl13; arc=fail smtp.client-ip=40.107.220.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="eEDVdl13" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LZfwZcLzRhPKpFAk9XhcknJy98qkdRsvE936UQfLTJqw7YqgHgiRxQ7pemRIG1Vuj4zc9c1GrNd2ZnA2F8xH24vdm4caxsfm2cMyFL0eXn0nQkUSIx8Ln5UyFBO17TvQm2ySSo/28Yn1g0melVONSa8+4Pmvvc/Oat+LqQsgd9BCjOlu9tUVWMkeQanmerGyKJKWTzi+l/wKWOPJp1v6Rm2L0wCMzuKeUlWJHy4FSC8KZJyMuG6g4IlSCNFy6Rn77tKglKZ8pKi6nVb296tm+Tp6TpiVU9MFuBD3aTRE1CJCjNdo01NftanOAVSjceFjCjuysF8e1WkmEkKE2zBd5g== 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=ysrIpvkXovWCi2qQ/IJ3H4A655vB7ZwzzwefMEzAjMg=; b=j4G95OxArllbvlRDOulFyQC2McKVymnmXrP7pplOfBIY7eJF+1SGA5/lYi5nuyp61oaCzNuvRuXPTSedFtz5r6PBm7NVSIPsaXjTSvg48MWz7B20yhV/eRVqU25TBems7vW+g5TRyjU8BmfhOOwDQfrabNinssIgtdE9BTAie6fz3C8Ik+KVjhxa/5/2nIwRIl5wUZY7ajYqh/RKU5s/fno9tSuIfXjaipQEXzNDHQEAHhY9Y1TgK1PZo4Y4tRZ409GaICvU7+Zrp5nqSOqYLhIeFjLvC4A8CHoVvpvtThglflEkQ+PymmH3ebWXMnLBAIW50yJpj0S4aQ+w2V4+Cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ysrIpvkXovWCi2qQ/IJ3H4A655vB7ZwzzwefMEzAjMg=; b=eEDVdl13RSORAEXIVCKOwHD8caeWSHxOLPAGBC5o5jY81gzF2tZ/BQ8H43HyOISIusQqUosuU0IketLEXUrFEPS2j4zA6Ac+//JVBl4oRbDTxja+itwnflFKB5SSCX3n2avDnOEI4NZv0GUTJsq+RHNI7B3qDQzFz13D9pNZXk0= Received: from CY5PR04CA0007.namprd04.prod.outlook.com (2603:10b6:930:1e::27) by SA1PR12MB7224.namprd12.prod.outlook.com (2603:10b6:806:2bb::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.31; Tue, 3 Jun 2025 22:20:03 +0000 Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com (2603:10b6:930:1e:cafe::7b) by CY5PR04CA0007.outlook.office365.com (2603:10b6:930:1e::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.19 via Frontend Transport; Tue, 3 Jun 2025 22:20:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:02 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:01 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 1/7] cxl/region: Avoid null pointer dereference in is_cxl_region() Date: Tue, 3 Jun 2025 22:19:43 +0000 Message-ID: <20250603221949.53272-2-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC0:EE_|SA1PR12MB7224:EE_ X-MS-Office365-Filtering-Correlation-Id: d63db762-1d1e-480c-c211-08dda2ecc914 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?j+2M27VX181utQc6vDwgYJXrs3yAz4drNYbJI91m84R/XFpGsCEBV7y7cHR+?= =?us-ascii?Q?P80Kg4UPi9c9C0XGwNdyX8rJjO8nyUlRVkjFyVuUbvRhfU1H9zf+cH0cKZqJ?= =?us-ascii?Q?cdPTV75V4vDOl01Ul8ZPF1VB/xSTROs+mkGm6zDSIJNEb5TCGbZKa91gNZ2U?= =?us-ascii?Q?id+ViOP25n98Ko54q1GLtlu/MO6U/X86osdpOgWUYWQBDdLxHmqDtDaPPefY?= =?us-ascii?Q?/4SBAMcJgFuaKjCFwU1da+cZzf4Ydkv7a9mex/IGfmqqEqc+CDmYBhCWze8g?= =?us-ascii?Q?LByt3GOrOzX3mVo1XN7NeGh2Xb8iT00XLMtxZ1TQMoIBkri0nRP2BeArYb39?= =?us-ascii?Q?3F0mDKbKNABKkVpeT24OEDKPAw2cYkpNZxP4mdjdmwos4NqQlrIDTgOWUNpx?= =?us-ascii?Q?O37BRCPlFjWa4BDb0+BpBabGQGGJ8HEePkWLtAmjldwgbLsxIPBNlf6IEtP0?= =?us-ascii?Q?0jNgdaVFlG+N5tOnvHj5BZHGSI1htj0P+zPO1614O3XEE7B/G05CN9O7y8pP?= =?us-ascii?Q?s3wjtAiR1gDuIAlS69oNF2gH3N/GKJz5zmHZF7iwYXXof1n0HCROca8WRTui?= =?us-ascii?Q?Gr9Gt8GA+903QMCDV7XNsAcRcdS0lYV9qG/RFZ482ql6ewZW6pLj/iMoZlgI?= =?us-ascii?Q?GQ7adJvyPBW3NddLfrwes6n0lsOfO2quAhIcCBubcqVUkGivvdPqhnHOzlUi?= =?us-ascii?Q?m/VAOJVy/l+DzvJZF49ImTnEL+KG6na0NYm0VMYTYuKN+mYUTTWc07WX3zjy?= =?us-ascii?Q?l0ySt0JVHUFoiGvjBePrEQIikkBrVN5ra1wMoq8YH/ygBsXGtI1I70KHG/P7?= =?us-ascii?Q?p9DZfL1g/uTTxfCUQkRBK4Qc3L3IkUSR0aNxNJJxon/Su9oHjlEfsSNx2LfF?= =?us-ascii?Q?lapxI7sg6owdrvYXsFZA4thbNa7d7JUCys/4W+zZe1nABLOCSLhCNDFYIN1r?= =?us-ascii?Q?Jde9ZZ8iD91Um3hMowFpTFGpxp9TBI8uWsmFONUxh13/CK3H754x3iKcArAi?= =?us-ascii?Q?ejp1ngx3OxnWzyAb0strnckGNMSCRzqzh7c3m3sH06ImmnhXWEhwfWSqjy5Y?= =?us-ascii?Q?uSDtjrSg+PH+NC08NsTkmogNP/qciR3cmRYC4KkNYcMrQ5fbvuHwI3vqm1+0?= =?us-ascii?Q?E0XSyv/8z3xacem3GkdyHC16DHEtGwIVAy2hbQp4fUZCKV7LDVI73Z7g8nGq?= =?us-ascii?Q?7oB+87UD97z3k18laN9d6KaCftpa/A3pRkVxyPuBjLH39WFRL1wr0SzA25wl?= =?us-ascii?Q?lQPBjPNY6yXRnerK1wBgCdv57adXU3DjpSNqEpB/sYH2F92QCQO6RxjON4NR?= =?us-ascii?Q?eWtmUAROEjwPTxHkwyTg+L3NrIBlvCRrM/8EgGhnp0Ujy8ghmwbbYawP92w7?= =?us-ascii?Q?CHWffJ20/x5xqjpbzSd2AFY9wI5C8oNpVb2R3iIFMJd2Mj1VWDWlssq3w/ij?= =?us-ascii?Q?vWZOFTLJWpl5f1p9sSDLuHf3K4AyaT0/MNI9yelXOzGqRzR7Y5wUjK1GD7By?= =?us-ascii?Q?ZgRvWpRI61rI2Afx06nNPVD7g7abJYLcSAJ6?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:02.5024 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d63db762-1d1e-480c-c211-08dda2ecc914 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7224 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a NULL check in is_cxl_region() to prevent potential null pointer dereference if a caller passes a NULL device. This change ensures the function safely returns false instead of triggering undefined behavior when dev is NULL. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/core/region.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index c3f4dc244df7..109b8a98c4c7 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -2333,7 +2333,7 @@ const struct device_type cxl_region_type =3D { =20 bool is_cxl_region(struct device *dev) { - return dev->type =3D=3D &cxl_region_type; + return dev && dev->type =3D=3D &cxl_region_type; } EXPORT_SYMBOL_NS_GPL(is_cxl_region, "CXL"); =20 --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2087.outbound.protection.outlook.com [40.107.95.87]) (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 02533253941; Tue, 3 Jun 2025 22:20:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989211; cv=fail; b=MukN7Fpp233yY+tNzTCGfepIgaB/jZtlLSHkS2/YGdeIlP13w+BE/HPWzRLhrojdaXPhMhV8DPidKnAu/oj4NrxNwRCyVJnNP5YAYbJxbS/1sx0e17MBzrDdM2PNsWJLSJrodMEbs9daje40rlwFGc3mmygvYsps1stjUa7bHiA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989211; c=relaxed/simple; bh=e8oDyjaAn0rCiJfByJQfNCNHd4YYGM3Fvx+wNGKQZHs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SGi3Zd28OzY+HwqroaZTU8zkWta2JoeTheo79pi8Lv1jhurQHqqENpIrRZcN4oqLf2451vfy3IH5D4bFFLByPvtPgkCVALsu/3o4gls7qQKDOjm4zkmb6FYpjK7/Pn8+W/d1uTJz4lgnbPwhpPgHVj+D/3Xuudd135eL0pMCzYM= 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=JdvPe8Ox; arc=fail smtp.client-ip=40.107.95.87 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="JdvPe8Ox" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lxg0vYmHxJ/dUlG2pSpkzW7F1RkNu/Aknru2Pkw+5fMz4GZ/b2B1JcS2+8pGpTiEzv2HNIBE3zaddubxwS687MqzcK4Yd9B++J9lzj1cS0aNselyyNC7WxsQ1H2afCeNI0X9TaLWBceY7Pmk/vuyctncTBi6hXjqr7KqU0LaRnDFYbP3DLorTpbIMCeiLt7r8p3N43WiplODPx7guA2ZypcrSKDNJdI/9dBaCE3yP6kTj9R/QsRzWkZUMj35WcEL2syaRQRmK4YnwqFw6JMQ+mqqmWxxjUhTID4VE5JQVsIRrZxs3PemAa1kpJUfrJwmqbyl6+kfkUJhh1O21OOihQ== 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=qRuZ6VtrrEFKjSh/DIBH37ZGIOKvDD63I32bxGsxwv0=; b=WivKJS4TktNBniYCppPjVl9GQJEfJ+O+BM+fuylE6QeWlgwfxhk76a5R3oJt6D6PfXsab6EnhkmGnC9XcN15DBCaGzbPOeuFFot/noLUumkxqGa7R6up7En2mBM9SqUNbNfB9NPVXS6ElACgKQh7WUCrLqpaVxILBhYdT/XoH74Emt3u80Tplut+K4Puj9leRWlVJVzgUL0Azj3bxqoZvzCXGc8mSLSNKZpaS7yxz6OeDVnN0JgR/eNC9Vmgd1Tx4bnrHNEh0mdutB48oCUAhJMU9WamX2RbnedIaVgULj77SnI4VOxrke2sMKFDk9N9xCLb1XgeVfGunsjMNlDzhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qRuZ6VtrrEFKjSh/DIBH37ZGIOKvDD63I32bxGsxwv0=; b=JdvPe8OxPdvlJc+Ijl1jZCn0oQlC7wz29stbOz/d32/lCXyOBntMBlB3oX6sfoaiUIwZ6lrrkEwUM2CimpuD4nYvEZ0bAploZ6Wa9/0VbEU69kMq3iLu+zgaynh6kPImmEvPtnsPO/iCxwkMqXYz7xD5tjav8ivZsCdDTWRkRGg= Received: from CY5PR04CA0023.namprd04.prod.outlook.com (2603:10b6:930:1e::30) by SJ0PR12MB8616.namprd12.prod.outlook.com (2603:10b6:a03:485::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.31; Tue, 3 Jun 2025 22:20:03 +0000 Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com (2603:10b6:930:1e:cafe::33) by CY5PR04CA0023.outlook.office365.com (2603:10b6:930:1e::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8746.32 via Frontend Transport; Tue, 3 Jun 2025 22:20:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:03 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:02 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 2/7] cxl/core: Remove CONFIG_CXL_SUSPEND and always build suspend.o Date: Tue, 3 Jun 2025 22:19:44 +0000 Message-ID: <20250603221949.53272-3-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC0:EE_|SJ0PR12MB8616:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e013aae-4da0-4176-0be1-08dda2ecc995 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FEWj4ja72xVjjE3HAvFt+5lvA+8YZgofOY1asHgfxB/xFhq5SwUw0r63kSoi?= =?us-ascii?Q?k6LXvAFAvBeaE2efRi4QrypuWDh1DFX/x6WHxHNncnpMjSKjSkA9EOaCrxLG?= =?us-ascii?Q?FF+bFeehRVhU0I9snzoqpxYfr5FIWHtUNED9xFry6yr8b5XRVEXYg9tsAGQ2?= =?us-ascii?Q?lDVN2plvrW1cITgE8FjC+MnWQn2WL+X1N+40OezZpkrKuAFsKxnKXAybb7qx?= =?us-ascii?Q?NWI/ot+DftqjVeKuLxak7QYupBgb5LEcK0wBImS05ZbBf8EuYIvAAhEMgHkz?= =?us-ascii?Q?iV8AWY7TdmsHWFByWs67cjmsKUU0Vyb/NdmWnWE6SWH4Jt3BEgWTDwc/cy4y?= =?us-ascii?Q?3Q92KYskG2AWjc9k2wrWzwZ0BwDn6BWHwqzOOCqUSBPu+MIA0M7JadJF+Fpk?= =?us-ascii?Q?2aosgIdvT0G+nSoamB64ZeF6LBIbOXsU2wC5NMkau9migt75S/R/nreUvdDC?= =?us-ascii?Q?MO/Lt1UONycqIPwSvEuKMbl2CaIGf2E95Mq/xVSSGDdMqJ8N34q8A3IrPGza?= =?us-ascii?Q?fTFJ6QhvwGDL/7H9iOFyZNqFV0lC+SKxs/ehwm01nDZ5BaIHLI6x9YNWGdac?= =?us-ascii?Q?yf9zD86kULDgZ1A1Gir15sCLgVHNyP3sw1rPITB0y8MyIo61H0hiEQPgYm5V?= =?us-ascii?Q?qlK7CgN6Ifbd7tnj67FYIgVWzmRHkO9TpHEm8kQaWITbtl24IzAjAxlc+Lvf?= =?us-ascii?Q?DeL5z03P5DVPNneKUcWySvdS6KFjeCrzwsuyhLf9KdFeV27bdoX9CMkEqPR6?= =?us-ascii?Q?3NYw2nLDxAn4ShLzVP/PKfsVVLPZ8rYKKXxiJB29jIfLDsKY58B7+rZkFSTM?= =?us-ascii?Q?F5TPg/TQMxF3zLQWCe12FJD1MgQUkgFHGYFAzzA8ArsA7s27iuHKMQEGHkAE?= =?us-ascii?Q?tvpDcVCu+uOe/zPVP4PWG+17ErLSOGBedjDfj8DnuJNo0W1oZh8X8LgJTexg?= =?us-ascii?Q?fI8AdM1cQg3q4/pSCxq1KuHIqJ4wvk0TowmlP+Ct1qW5omz5PSwY8LT7GrrY?= =?us-ascii?Q?Xn8+fUL2LQJLjmU7zuxrwrMWG23rwL6F0kKhZpHbmbuXjuLUKtrW//jsoEW4?= =?us-ascii?Q?6rJEnGfBQhNl8kDoPBNox7ANg38BBKRBSAmvMProdPgBsXMklARReeGiwnrJ?= =?us-ascii?Q?Itgm0ncdYPDHsHaBXWFrEeOQ0YXVlgD/1tk7Hb/VRKMaxy0HbW6+27JUP8je?= =?us-ascii?Q?stE1ZwaDkq+ZqdiLAMWX07CHpPZEMmQvNsZDjEBN93fSVVReBc60ThoVCrJW?= =?us-ascii?Q?zT8OBCYq2/3cdu7Vm7djNqWysM6r2eBIH0rih1xo5GHb59CZubB2rYdJONkI?= =?us-ascii?Q?rLCXuO5pXfRZLiqz/WWooCluty3W7jV+1GjAJ+uku4W684cTvbJ5TJXOcXUQ?= =?us-ascii?Q?Q+xdJetYkwfmZ/DAGnOJWVVKSee5W4tzzmHo5K645JEhT7OQf+djm3C4Gc6h?= =?us-ascii?Q?iT9DUlxpGw6ovSipY9FowRwBM0N6lTdwXMkbJaHtJIiDINlI7FaNONAtbwxd?= =?us-ascii?Q?Lva1YVz+OcaZ0XaH5GZWCK0L12BJDiID7DJX?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:03.3441 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e013aae-4da0-4176-0be1-08dda2ecc995 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8616 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In preparation for soft-reserved resource handling, make the suspend infrastructure always available by removing the CONFIG_CXL_SUSPEND Kconfig option. This ensures cxl_mem_active_inc()/dec() and cxl_mem_active() are unconditionally available, enabling coordination between cxl_pci and cxl_mem drivers during region setup and hotplug operations. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/Kconfig | 4 ---- drivers/cxl/core/Makefile | 2 +- drivers/cxl/core/suspend.c | 5 ++++- drivers/cxl/cxlmem.h | 9 --------- include/linux/pm.h | 7 ------- 5 files changed, 5 insertions(+), 22 deletions(-) diff --git a/drivers/cxl/Kconfig b/drivers/cxl/Kconfig index cf1ba673b8c2..d09144c2002e 100644 --- a/drivers/cxl/Kconfig +++ b/drivers/cxl/Kconfig @@ -118,10 +118,6 @@ config CXL_PORT default CXL_BUS tristate =20 -config CXL_SUSPEND - def_bool y - depends on SUSPEND && CXL_MEM - config CXL_REGION bool "CXL: Region Support" default CXL_BUS diff --git a/drivers/cxl/core/Makefile b/drivers/cxl/core/Makefile index 086df97a0fcf..035864db8a32 100644 --- a/drivers/cxl/core/Makefile +++ b/drivers/cxl/core/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_CXL_BUS) +=3D cxl_core.o -obj-$(CONFIG_CXL_SUSPEND) +=3D suspend.o +obj-y +=3D suspend.o =20 ccflags-y +=3D -I$(srctree)/drivers/cxl CFLAGS_trace.o =3D -DTRACE_INCLUDE_PATH=3D. -I$(src) diff --git a/drivers/cxl/core/suspend.c b/drivers/cxl/core/suspend.c index 29aa5cc5e565..5ba4b4de0e33 100644 --- a/drivers/cxl/core/suspend.c +++ b/drivers/cxl/core/suspend.c @@ -8,7 +8,10 @@ static atomic_t mem_active; =20 bool cxl_mem_active(void) { - return atomic_read(&mem_active) !=3D 0; + if (IS_ENABLED(CONFIG_CXL_MEM)) + return atomic_read(&mem_active) !=3D 0; + + return false; } =20 void cxl_mem_active_inc(void) diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h index 3ec6b906371b..1bd1e88c4cc0 100644 --- a/drivers/cxl/cxlmem.h +++ b/drivers/cxl/cxlmem.h @@ -853,17 +853,8 @@ int cxl_trigger_poison_list(struct cxl_memdev *cxlmd); int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa); int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa); =20 -#ifdef CONFIG_CXL_SUSPEND void cxl_mem_active_inc(void); void cxl_mem_active_dec(void); -#else -static inline void cxl_mem_active_inc(void) -{ -} -static inline void cxl_mem_active_dec(void) -{ -} -#endif =20 int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd); =20 diff --git a/include/linux/pm.h b/include/linux/pm.h index f0bd8fbae4f2..415928e0b6ca 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h @@ -35,14 +35,7 @@ static inline void pm_vt_switch_unregister(struct device= *dev) } #endif /* CONFIG_VT_CONSOLE_SLEEP */ =20 -#ifdef CONFIG_CXL_SUSPEND bool cxl_mem_active(void); -#else -static inline bool cxl_mem_active(void) -{ - return false; -} -#endif =20 /* * Device power management --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2075.outbound.protection.outlook.com [40.107.244.75]) (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 0659B1474DA; Tue, 3 Jun 2025 22:20:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989209; cv=fail; b=bucfRpzqybqWqHWu/L10srwqDNyUm67ElaJIclhAVny2TpBdmV8uuM6Tt2tjzaIMhYS1XUDAmmQzWDdye0VGKLZsl1GVOwLepGrxFRcfzQYSL9ua053ceQZUhxkfO6JLXv0lvP5EC7Iq8v29L0bwsjNzttqK3s3YZjScVCpv5jY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989209; c=relaxed/simple; bh=Tnf66geRnjUcZt+UWmwGE1IRvFPcqlwnDjs51DGy67E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=C9l6WhqC/RREGkt3ikugqIdZw2qKl9aMDgpFQ1lhUbudTFFsDeyBWHpYFEnMtJJv4sByRZHofYq3Hq0wuJRC7hPWQTTnlEErjsbCuB4HAQTd8q0HoEnIhMcklmtauNjbxl86O9BrlB+FnipALd8P3yB+GcloJD1jGOl8gsD1JOw= 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=1/DHXfgc; arc=fail smtp.client-ip=40.107.244.75 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="1/DHXfgc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uoe6coLv4gHH6LxYLvc1s1MojBTfUdvHKeWwSUkVE7PrKwcVdP3CxRoB+TqyE4RM6xYFwvdBUNR160jMHzXK3/iJXWivkCucDYqtO3OS/mivCBvQl9Jh8YwITusv3yQMwRVO05/LCZANqGG1v929q1BN1Q9kRFT7BjKTxkN7kElVBSTkJAIfIw22TCLizai8OBuPeihpULy8Ds8L/Sc6r8LS5XCKdWvpfMjdf7y6DY9aY8AwYP0IUyj1y34O3noaxa5D8GqAAL6DK87g3daq2dpWDrjMqPLqWK6jPatQ37oSAjzwRl/XB77K4Ij8NGru4KlM3dKHiLC7VL7xq8exCg== 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=BM2jZaLcyBV7d9evKbwxRNEE7WAFzwxfV99WEiPEQew=; b=qPzriMWOheawo/VAkZazGOgyL1BFJAO72VuieZ1mLmUjyy+fWHyhCpgF5nBnQ0HhPYKdgW55/HTRFSsZ8dIvDtO0Pt14ONKlWbi8zJKZp3auTyV0XQhnMrV/3bmfIm9bvHkxOc6fEJwNNDbNsETQRFkvv5wVTDbsRLDFoYbccSHdVR2d3jRZHU8nI8Ps8/Nl9Wr2vxWESCYfb2RWOCrGJcX7x+Vd8J7NwSrc6aSsFzbSLX/dr5zqV5hqxPi/Y/SktLJIM2435G8wp9nLxSk9LiOG3VE8oKBMmTJiAsgYS5/D8UBTIVe7PHfAmDPWOPU8uxldPN7HUZI1bihbxRr5IQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BM2jZaLcyBV7d9evKbwxRNEE7WAFzwxfV99WEiPEQew=; b=1/DHXfgcrVmzcuuo7S7FUPP/L8X8j/vpdnQssfZ+AdrzkQffwjFlnV9FMCIarL5yHXvipWaTr4QyfqQdVET+rYiXmqvwVembQJSFD7y7y6nK8fHe17wmBZBWu2UUHSKxXscV57GCdLmj9MeHhYby2r8i9rIK02Z7mxXSBsQMW68= Received: from CY5PR04CA0012.namprd04.prod.outlook.com (2603:10b6:930:1e::11) by CY5PR12MB6407.namprd12.prod.outlook.com (2603:10b6:930:3c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 22:20:04 +0000 Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com (2603:10b6:930:1e:cafe::2f) by CY5PR04CA0012.outlook.office365.com (2603:10b6:930:1e::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.21 via Frontend Transport; Tue, 3 Jun 2025 22:20:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:04 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:03 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 3/7] cxl/pci: Add pci_loaded tracking to mark PCI driver readiness Date: Tue, 3 Jun 2025 22:19:45 +0000 Message-ID: <20250603221949.53272-4-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC0:EE_|CY5PR12MB6407:EE_ X-MS-Office365-Filtering-Correlation-Id: 128f61a1-4cb2-4843-dfe4-08dda2ecca77 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?o7sDmwrsRGixGPR5QausHBijSNpESwp7fCCmdM96W/mwo9QmqNDp17N9ii59?= =?us-ascii?Q?qs8umRLSaNhjgHf0NNsT9jAaQ48/+YWcLm2/zZ5o6dyKm37AFn4loRbVv0q3?= =?us-ascii?Q?YcWF5l8dpUsZf7U49IxZRMXVtYPRuXQ6nsSLcPSyGaJErpjuE5H0H/f7OAdU?= =?us-ascii?Q?tcn1Ppr7RlrhQF58ciWW49+cQJPDEuYULY0UZlwK+xcna++Dn3apXvDtqmnQ?= =?us-ascii?Q?VDddWfbjqgBtswZfXUkqwy5wwr9Isi1stX0f7I9120ZwI2ws9In4HRrjr0fs?= =?us-ascii?Q?K26yBnBS5D2/e6X7xUUyUfiBZ1EQp/xElD7Dd7gV/crWotF/bchAoScP/G58?= =?us-ascii?Q?5BDpRcRQIekrjggSoBjac5X/9JsX2cVtLb6H1MqTNoD1hjTZTuzJ3zjVBO0W?= =?us-ascii?Q?pD7X9zM8EPxyy/sPOgI8ROHZyDaPnSeoVdCF8IrH/7S/VyKR9OyOcSps4+Fq?= =?us-ascii?Q?PFgjXI69aer47esEsr8AHXDLKNCBCwfpVOFMXR0x1q5nIGUvxPVj7Y3QpnZZ?= =?us-ascii?Q?QfsNbMO5Iu9O8hM7Xw2UzEYvM2lvA4ad/Gmgf/I7NInyffs/MZUMAEYQ4nca?= =?us-ascii?Q?HPRE1RLUzGmjFpMt4723IsMipVZIrWrGX6vmyUloBFnj9x43SkwMU/AnXbIo?= =?us-ascii?Q?W6P2qFkY7hm1IRpg3jncT73VjAHaJ1b7DRKK63I5kN9V2dkKKYjoEc7LBtA3?= =?us-ascii?Q?wR88GWseKipb2+necWEUliQSliexF+J/F1VnA9EYNgZeh23+jEThlp7axnAQ?= =?us-ascii?Q?DW0Gj9sWdMHsGJhzVB0OaElzf96kth2kyqB/n8Iiz0CQ0iBiKodCXc4KKTZQ?= =?us-ascii?Q?7JZR6Y3Y2+cnrg/RFn5WD5R4Wl6j0uiz/gzyuXCL/S3OwkI4uLbnj2ChecXF?= =?us-ascii?Q?e80173CITI70uMwRNRkM5fi1MJxeuXmEg/e6iN64ZJGCoi30l3Rie9vBzQaz?= =?us-ascii?Q?04T6nKjNI5cUphXDmQpFKrHV+m3v9BbDqtYkqCF5uvOOw7gwujuNreOk5LuB?= =?us-ascii?Q?l3MZGeXp20nVreG3SJ5HtZnxN/avYv4XNEkWo1gioLET/GhDtEt3w/nrRDV9?= =?us-ascii?Q?11psz/we8veHLg0/Vek0jHdPyMIjdBJuMV5cDLyFmEez/PxznSDnF6/9hWrC?= =?us-ascii?Q?Bl4AQldaP7ojHksNlQXHQUo7tUSpDTGkd14uk5bwf8OrWvhM9b2SI7eNAg6m?= =?us-ascii?Q?bnwHyxiLJjUo9acIAe/OPikLjCkBOhUfPwNTuFxONqa/lUAk/UU6/lEw6K4f?= =?us-ascii?Q?WLEZCNu9Hp+D5sgko6l7pk9V81k9qEznaNUzhykxoqwN+zruIM5Erj4nacBj?= =?us-ascii?Q?+ql4CfTGlzG8i3RTGDIHK0zsidqnKgBfPRNtLDiINsWxLoiK0e0ftokzPRaK?= =?us-ascii?Q?9IOCCeVoZKRug66g5wfPwYLPYAQ+yeIlNUMjWdi+kv23Pn14OilUJ5dNRtVo?= =?us-ascii?Q?5pCT8z5QpaoRAhBLAnuMmJgaomFRv9pJpZWXgJgjmA35vljLXAH8r4qV68/t?= =?us-ascii?Q?LjMqD9PmbCLjtsyRV7fhxYgOkVeAGgHTLtsT?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:04.8251 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 128f61a1-4cb2-4843-dfe4-08dda2ecca77 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6407 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a pci_loaded flag similar to mem_active, and define mark_cxl_pci_loaded() to indicate when the PCI driver has initialized. This will be used by other CXL components, such as cxl_acpi and the soft reserved resource handling logic, to coordinate initialization and ensure that dependent operations proceed only after both cxl_pci and cxl_mem drivers are ready. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/core/suspend.c | 8 ++++++++ drivers/cxl/cxlpci.h | 1 + drivers/cxl/pci.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/drivers/cxl/core/suspend.c b/drivers/cxl/core/suspend.c index 5ba4b4de0e33..72818a2c8ec8 100644 --- a/drivers/cxl/core/suspend.c +++ b/drivers/cxl/core/suspend.c @@ -3,8 +3,10 @@ #include #include #include "cxlmem.h" +#include "cxlpci.h" =20 static atomic_t mem_active; +static atomic_t pci_loaded; =20 bool cxl_mem_active(void) { @@ -25,3 +27,9 @@ void cxl_mem_active_dec(void) atomic_dec(&mem_active); } EXPORT_SYMBOL_NS_GPL(cxl_mem_active_dec, "CXL"); + +void mark_cxl_pci_loaded(void) +{ + atomic_inc(&pci_loaded); +} +EXPORT_SYMBOL_NS_GPL(mark_cxl_pci_loaded, "CXL"); diff --git a/drivers/cxl/cxlpci.h b/drivers/cxl/cxlpci.h index 54e219b0049e..5a811ac63fcf 100644 --- a/drivers/cxl/cxlpci.h +++ b/drivers/cxl/cxlpci.h @@ -135,4 +135,5 @@ void read_cdat_data(struct cxl_port *port); void cxl_cor_error_detected(struct pci_dev *pdev); pci_ers_result_t cxl_error_detected(struct pci_dev *pdev, pci_channel_state_t state); +void mark_cxl_pci_loaded(void); #endif /* __CXL_PCI_H__ */ diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c index 785aa2af5eaa..b019bd324dba 100644 --- a/drivers/cxl/pci.c +++ b/drivers/cxl/pci.c @@ -1189,6 +1189,8 @@ static int __init cxl_pci_driver_init(void) if (rc) pci_unregister_driver(&cxl_pci_driver); =20 + mark_cxl_pci_loaded(); + return rc; } =20 --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2048.outbound.protection.outlook.com [40.107.212.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 74E7A254858; Tue, 3 Jun 2025 22:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989213; cv=fail; b=NnBJLTtMg0xn3dXBc6zfe8duz+Tp12pGIHW0H46V3RzCUc0z7+X5owcLkQCe1PcupSMAFObOsT2YwXxm6zax5hoJjUNAw5zj9Xz1OlCZ9d/jdNT3FL9Kg4AKXhpO7Qz6PAfK8EpuGuW3c+TAVT63bN56aAUwOoxNu5VXwLVGXBU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989213; c=relaxed/simple; bh=z5lI6KtHmXEqtnqHp9AFcaGOmTYA2hm9+mWHS4NYsa8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fx1AKgkgsK3Xlf3lggQIqLHEwMq4ZC3ORRLDrEawMBOrd1Vd5QIzToG27gmqX+Ly6YuGLIGA30kLJtvdG2Dop1xrEb4U62f5YJ/e1luVylP4Yjhku3rqEqg6PIR4bCSDAiZH0tPuUoawz6+FLlkiH399CtEYxUl2eZXvd7gPhQk= 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=BJnZ1P3w; arc=fail smtp.client-ip=40.107.212.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="BJnZ1P3w" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k1ydyi9yqCrXXn6c0GbFigOsIiNK0iSx7VXXBqvKMJ5Zl/mPwyRYdFRzRngbYCxwGb2BZgd47HwFrbuAfxqelg7txoe7v7i5VYP0ub9rdZnpHkbZdCJHrxVQwCLT/DhFqVM0wghTXyqX8MRynIf8zJh88VJQNTK9fHQwDKjS/2FHjnaDioh2ooLApSnHR28kO8KOGOxOhJhtAPVyf0K0KIa5GSebHt32TU8+RTNCR5gqdwwdJwD6x4kGwUNtNAXj9rBAn5xorRnoP1OjlzbuB7NDxeVqexOGQMJz/spljaqnm6d9yei8/xhgFtJzd+ehOxSVcK+VY8JKYRtXgWYFBQ== 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=jpmtWlP5aWKx/WTR6+1Ad5V8DHJJNmy2EHcoch3RNiI=; b=YrSBvd0rPzdvNbF6HE1FpGdid6XCJBsxEC8wShDTSwcOiRCUglxtNCLtCjaQGa1w7ARChHWyU2QuWgdxduqklFkLFAKbhaqRvnWDxfPxXVMDSWIIOKtL6O7Dpk8ydCxZaVY1eyavScQLphdkBfgym/X186tGJEuig8T5E5oRO2we7WkkZpubh5sY1sCC0bc12cj9V7JFwkxloOR7boYUTA7dExKK3ZkByt9auJAdCHoApzKTklYXyKl70P3dESxHXnc9o+bmZEf/4+/JzxdCaKQbVCQB0yMci/tXozCuyU0g3u1wPS1hh5RSWDvY+Ub497pK1rWybcyM/NVVH9hUwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jpmtWlP5aWKx/WTR6+1Ad5V8DHJJNmy2EHcoch3RNiI=; b=BJnZ1P3wgAetpCvuTptqWVPbXY7jokOrNnie85mz2bpLFdqAmDG0sLHMqawj80L4EAtKQjr40d+xJw6EOQHTBkU/Um51K8cwUBbCRUK2ssIpQOlbImIvDiH13B3jz+hBSnl8JU+2MlxWVMaeDXHWpGBrVOksNGRcC/7UuPFmNDA= Received: from CY5PR04CA0023.namprd04.prod.outlook.com (2603:10b6:930:1e::30) by BL3PR12MB6377.namprd12.prod.outlook.com (2603:10b6:208:3b0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 22:20:05 +0000 Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com (2603:10b6:930:1e:cafe::db) by CY5PR04CA0023.outlook.office365.com (2603:10b6:930:1e::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8746.32 via Frontend Transport; Tue, 3 Jun 2025 22:20:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:05 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:03 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 4/7] cxl/acpi: Add background worker to wait for cxl_pci and cxl_mem probe Date: Tue, 3 Jun 2025 22:19:46 +0000 Message-ID: <20250603221949.53272-5-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC0:EE_|BL3PR12MB6377:EE_ X-MS-Office365-Filtering-Correlation-Id: a15b387e-5c3b-4f94-e870-08dda2eccab5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jMix/kPf1IJfliNFqBNONt+oRW8yv2fbHvdBiuY9WrvlrdY+nKqV8Iy9e9F6?= =?us-ascii?Q?15stkrQ79ZL9v3jKdjnxnTvfm96+jPu2OBjqJDf3DASyIDsILppkwFY2ky4W?= =?us-ascii?Q?WBd6Z+xFA6PWfR2BUuEkfTjdYrP/WmA3aPDd1ErQYyhhh+LViUpqy39XM6R2?= =?us-ascii?Q?fk2LAnNun4XG4bNInCT8YjyrG9MHJ/WueccMhvDsudzs3zvPAiL62ewh+kDs?= =?us-ascii?Q?Ib+S5yG7DSLmMk8jjIkQsSXxKQTq3vTXhllB8MWm8SsiaSxoOwiF/Dfa1sey?= =?us-ascii?Q?txt18HPuU4TMjROJoLxolDUxb8JK4tvHDdK1h92Kk8hgcwRqyXfyBga3SL3h?= =?us-ascii?Q?qQhMOvH6u4KUruUVO/Hj4jYYhSUXgGBTMstsntNUTqydsdDk8WK3MPMGoOqn?= =?us-ascii?Q?kUsbc8+EIk3LJOkUHx2NoeE951JwPftAChyWxykcPCoVY8DtQMNlAnyE4kDn?= =?us-ascii?Q?gkGEMT54gTEspb6Oi3M6ucKSGxev6v7LqbDUuBCY5XgMvfgHtpo33VA0HeQl?= =?us-ascii?Q?LI14qeHIT3uwwaeco3i4uA0VaJaZ8GdS16wKgy8t+tFVev0fyVzn4fPRHKoB?= =?us-ascii?Q?weeAirnjp0dCK6SN+FeXEViPeDjHwz8I+bYUQ6wKxr2hlxq6Z5hkucLYQgdt?= =?us-ascii?Q?OzYFsHcOkmUjFX/2bYoLCZ0+nW5ZzRcKRsvwgwVDAW6rn5PrSVWXNTvlw5fk?= =?us-ascii?Q?nftFtURiRaZQqisvK713GwVA8w3HJApoDmT9s0luij2yMz0NvaoWcJOe8632?= =?us-ascii?Q?odl686erqtFFtz5U5mOKYErlkPhFtLX3i+84/X9YKDWqAQ3W7eNirR/uPtBD?= =?us-ascii?Q?HRJdzIkh2MmUZYnlOMA3BR5dNDY4o383Xpbxn3njyrHc22qlberkSuYM0NDq?= =?us-ascii?Q?MYtCazipCihE6MxGIbOkvt8NwT1kJMAx5Vtc8Za3uLlqSo6x29i9NoLr3OuZ?= =?us-ascii?Q?g/xOepyFaKENYBfBEeNsCgjtLCuHlwgv/Vwmhx97s1HYaJ+UoJUrf+A0f0l/?= =?us-ascii?Q?VadBRUKOQTX3h9GFVKcEJSasoOHjuNw1nYCZ85YQZNpj+EQFb79UWqnSpGbl?= =?us-ascii?Q?UrEpLt9szadiUzDarPv7BWZ9zabqaSbbCZxq1ehgndNgs3mq4MDa033aEj5F?= =?us-ascii?Q?6aQgzqchScBeFJztwF1m0y4DKku26RhZPGe4vUfnK7mvkviTxjreVs5rCmsS?= =?us-ascii?Q?JJv1HMG1jwV3MTpssw3BhrFxnmjPsnNfbZz+ydTEzTFGU0W1hzYrGJoOojjq?= =?us-ascii?Q?WedzvM7wFK1fiEvqigaglWw9u//slJwilNg9o/xeZrRAmJ8/KnS6yjFWgThh?= =?us-ascii?Q?BPSauv7HwOd3vNe4f4aNAbpPEdLK+GtyPd25GgvmkIr9yVq0RH9hT6MWr/W0?= =?us-ascii?Q?+Sz/Kjpmpx+Si90/6u4UR4YXkIgZuIkoZz46qcdP1Wdd9zbZsNKoQqeHePeX?= =?us-ascii?Q?RpfZTdNVcYRFx4ULfq2j+/kaNkQhur9hHcUiIcxJqbyAzgdEMCZ9G8DOOlLK?= =?us-ascii?Q?A4TXklqIthfC8CX7ZEIWaaZmvIRfIFzA9hMy?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:05.2369 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a15b387e-5c3b-4f94-e870-08dda2eccab5 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCC0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6377 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a waitqueue mechanism to coordinate initialization between the cxl_pci and cxl_mem drivers. Launch a background worker from cxl_acpi_probe() that waits for both drivers to complete initialization before invoking wait_for_device_probe(). Without this, the probe completion wait could begin prematurely, before the drivers are present, leading to missed updates. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/acpi.c | 23 +++++++++++++++++++++++ drivers/cxl/core/suspend.c | 21 +++++++++++++++++++++ drivers/cxl/cxl.h | 2 ++ 3 files changed, 46 insertions(+) diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c index cb14829bb9be..978f63b32b41 100644 --- a/drivers/cxl/acpi.c +++ b/drivers/cxl/acpi.c @@ -813,6 +813,24 @@ static int pair_cxl_resource(struct device *dev, void = *data) return 0; } =20 +static void cxl_softreserv_mem_work_fn(struct work_struct *work) +{ + /* Wait for cxl_pci and cxl_mem drivers to load */ + cxl_wait_for_pci_mem(); + + /* + * Wait for the driver probe routines to complete after cxl_pci + * and cxl_mem drivers are loaded. + */ + wait_for_device_probe(); +} +static DECLARE_WORK(cxl_sr_work, cxl_softreserv_mem_work_fn); + +static void cxl_softreserv_mem_update(void) +{ + schedule_work(&cxl_sr_work); +} + static int cxl_acpi_probe(struct platform_device *pdev) { int rc; @@ -887,6 +905,10 @@ static int cxl_acpi_probe(struct platform_device *pdev) =20 /* In case PCI is scanned before ACPI re-trigger memdev attach */ cxl_bus_rescan(); + + /* Update SOFT RESERVE resources that intersect with CXL regions */ + cxl_softreserv_mem_update(); + return 0; } =20 @@ -918,6 +940,7 @@ static int __init cxl_acpi_init(void) =20 static void __exit cxl_acpi_exit(void) { + cancel_work_sync(&cxl_sr_work); platform_driver_unregister(&cxl_acpi_driver); cxl_bus_drain(); } diff --git a/drivers/cxl/core/suspend.c b/drivers/cxl/core/suspend.c index 72818a2c8ec8..c0d8f70aed56 100644 --- a/drivers/cxl/core/suspend.c +++ b/drivers/cxl/core/suspend.c @@ -2,12 +2,15 @@ /* Copyright(c) 2022 Intel Corporation. All rights reserved. */ #include #include +#include #include "cxlmem.h" #include "cxlpci.h" =20 static atomic_t mem_active; static atomic_t pci_loaded; =20 +static DECLARE_WAIT_QUEUE_HEAD(cxl_wait_queue); + bool cxl_mem_active(void) { if (IS_ENABLED(CONFIG_CXL_MEM)) @@ -19,6 +22,7 @@ bool cxl_mem_active(void) void cxl_mem_active_inc(void) { atomic_inc(&mem_active); + wake_up(&cxl_wait_queue); } EXPORT_SYMBOL_NS_GPL(cxl_mem_active_inc, "CXL"); =20 @@ -28,8 +32,25 @@ void cxl_mem_active_dec(void) } EXPORT_SYMBOL_NS_GPL(cxl_mem_active_dec, "CXL"); =20 +static bool cxl_pci_loaded(void) +{ + if (IS_ENABLED(CONFIG_CXL_PCI)) + return atomic_read(&pci_loaded) !=3D 0; + + return false; +} + void mark_cxl_pci_loaded(void) { atomic_inc(&pci_loaded); + wake_up(&cxl_wait_queue); } EXPORT_SYMBOL_NS_GPL(mark_cxl_pci_loaded, "CXL"); + +void cxl_wait_for_pci_mem(void) +{ + if (!wait_event_timeout(cxl_wait_queue, cxl_pci_loaded() && + cxl_mem_active(), 30 * HZ)) + pr_debug("Timeout waiting for cxl_pci or cxl_mem probing\n"); +} +EXPORT_SYMBOL_NS_GPL(cxl_wait_for_pci_mem, "CXL"); diff --git a/drivers/cxl/cxl.h b/drivers/cxl/cxl.h index a9ab46eb0610..1ba7d39c2991 100644 --- a/drivers/cxl/cxl.h +++ b/drivers/cxl/cxl.h @@ -902,6 +902,8 @@ void cxl_coordinates_combine(struct access_coordinate *= out, =20 bool cxl_endpoint_decoder_reset_detected(struct cxl_port *port); =20 +void cxl_wait_for_pci_mem(void); + /* * Unit test builds overrides this to __weak, find the 'strong' version * of these symbols in tools/testing/cxl/. --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2087.outbound.protection.outlook.com [40.107.237.87]) (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 D344B254AF2; Tue, 3 Jun 2025 22:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989214; cv=fail; b=umq/DDFsB7RDhD6uWQScrjRqf552wEKpUQUpuQ8whyFQeOQKP62JJWjBY5ZEcAa/tvGjm2mByBAixWLmXnh0ZKPQAePQTqUQPHqlpQKQEpQqNpdpgrmqRPhh9FjxB1ewkbGJ/JWbyal5dhEPEf55P21yX1r8px6mxGOZSa1VAv8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989214; c=relaxed/simple; bh=rDHHnzjcg8QNC2DfMtIeARylqm5NU+anYI4Tk0iC1l4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Wb7gycc0fwa5wXaNwnbTGTXFkpkNHRQ5id6zWtMWpqnztxUR2AN8q+HBRN7FDrqpDxp9igGeAm0mj4iJSTF4t7dECakpmXi6h/8jzZYYwlSZav9Af2LKH5PG2r5w/NPhovP99jtoS5jYcdAo/0tigcnJq8TU5VsI3uLcVRkUHtY= 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=Pz0SFe0s; arc=fail smtp.client-ip=40.107.237.87 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="Pz0SFe0s" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TkBM6sQawKDW876S5cQEM3hqs2dyt4UtB/fQEyFMzbchgAWUS1BQAvzoZeyoAnspcZrAlqUPN7HBU9kwu3InI0c6LMR8wkcn7Nl3gpSKEsk42Vt3A1jfVFUyNyL+JNWIOpknB9uPszKvftaULoUpC6a6kdao5M8tjN9+P9Iwh4kUsUrZ59t54UAQzXPF4nlS5n39kAz9zeVnzFSUPG1kGBYq0UefnlHF7kDlr5eIdoVGSxmlYOm90Ztm+2FoYtaubDOLrOotE0Vz4u0q6aKVrRTLEk84a6kyMNS0t57AvqOIfaq5bNt3rcP8PK5xGtyQ8xRtNY6TuDRDL6Ax9CnzEA== 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=0PcE2eebWNzxSfkC0etFQADkyHVQDFR3v3Y7GKlOBYs=; b=LE4AwQA/3U8gEwkRx6C4uSKVmwtdj3QGeTu1evbnBjNBP8VaojjmpW/E6Lk9ya8m7SaOLLhzuZw3Kt5eHsGJ0CV+8BScLXa1gbPCAaGA3T7z6QonGpWPhFQKsMNka+QXLMkrk7WiFeG+4CzD0aKHPSVkObTmZ50GrYiyoxlOGB4GpY5rz3UDSOmd2LVg706Fqtrk01bklihf6DJcyWN1m8gNSb9xiKRcA3STTwcIGIQtPmKtu1DRHDFyUcAIPX6CbEXrM5z1Dgq7iUAAVP9NhTy5yBjLWxliQaLoqebdG1mbBaOTK4DLgS6MrgDd2N9VTQztXs8n795rpTwhtpsZIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0PcE2eebWNzxSfkC0etFQADkyHVQDFR3v3Y7GKlOBYs=; b=Pz0SFe0saSfgv1XwEesRAsS9bZo3x54YKdRkv4tjwj827lAGvaKOMvT0xPi+EDL86zrthF65Y+BwpttB9TjZObH3c2JwH4+XhAFpO6qprx4kxy1smv5zXpKX4TzPF6EXNvfEH066/w1dEeJ7cA8sWp2luWCgQPPty1PTU9dVEc8= Received: from SJ0PR13CA0185.namprd13.prod.outlook.com (2603:10b6:a03:2c3::10) by DS7PR12MB5719.namprd12.prod.outlook.com (2603:10b6:8:72::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 22:20:07 +0000 Received: from CY4PEPF0000FCBF.namprd03.prod.outlook.com (2603:10b6:a03:2c3:cafe::91) by SJ0PR13CA0185.outlook.office365.com (2603:10b6:a03:2c3::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.17 via Frontend Transport; Tue, 3 Jun 2025 22:20:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCBF.mail.protection.outlook.com (10.167.242.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:06 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:04 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 5/7] cxl/region: Introduce SOFT RESERVED resource removal on region teardown Date: Tue, 3 Jun 2025 22:19:47 +0000 Message-ID: <20250603221949.53272-6-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBF:EE_|DS7PR12MB5719:EE_ X-MS-Office365-Filtering-Correlation-Id: fae3a523-9a3b-4c19-e9b3-08dda2eccb60 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+mBf6GItE1wfrjsLpPH1hlLcUC4Dfp9AYnKmTUsJYgVCKTixAKif3SB3rIK6?= =?us-ascii?Q?VcaxCN3M5v3pNI6qHv43Fnrd7NmYuIM+1jR+OpRS6mzROgXywek40KhZmYI+?= =?us-ascii?Q?V367FiWKa42VuT9brtrNm2UubW4Bo4JvRlb7UU5MRlDhGrKD5NdHBQgYQqrb?= =?us-ascii?Q?bgTy4jNz1fWLM8/DTbjlEbt2RW7ii6J2fh/Zn8hnGRe4hweM51YDBXFCaAow?= =?us-ascii?Q?JZjXah/oj66GSO+d/SWsAZLCgAwMXO6dUaCEutDk06QBxFXiaukib3Y9jf7e?= =?us-ascii?Q?YYpec2Tx4JkA9CbWYHEpRzgoARCTmw8zjgryhedyyimZfAIXJKsFw/9yIO4h?= =?us-ascii?Q?IqgK6wD28W8k1kdz70RFIiUohcEY5cz5R0ITVSqNYT3xmWw/u5SYTWWViHMA?= =?us-ascii?Q?uE3pLdIltYbm/jNtWNQX8T4krCyECY4+PKXSEpzoKWiSnzwAfGz0y+5L79gQ?= =?us-ascii?Q?tsnfeLDxN8RA96+7MvLOUI+0UwY8J0vSZIgp95PvRbohcu3vAckn9040j5WI?= =?us-ascii?Q?I0QEt9REnQOJ0oxTAX9E35V6XNuYUiSFA//d8iKexbsRknhBtgp2XqMX54vN?= =?us-ascii?Q?tGGGXIllKkXACF2mXsTu0q1BHwtvoM5SKCtzFoJXIuflb/UkQRIEb+F74awN?= =?us-ascii?Q?0es6iLS6gDGHUWLAlInTrr7Vyrb6MjOUN/TbZ2qMVOx2vk1tID/gNLP4SVhR?= =?us-ascii?Q?f+nSInrHDwSLKjLaWeUA6XmWOWOqwBU1432kJCc0T4vLSRrP/Khq+JoxNfpL?= =?us-ascii?Q?6b+GKIoWoyBmscLKcYkRneYC/mmwpwLJpXx5yJRjqA4whJFkpZmyzpLQ3pAx?= =?us-ascii?Q?OjRUSmvG2Z/4lUCpEdWxZLsRyjsnXQdlVRcIo/xH9SpMdQfKtS0ftyyK2oS3?= =?us-ascii?Q?Q0Cs6hvdddO5d2kSElUe2KK8FitDxxrbPwdi52soeFc814t3G2w9B8i89Q/x?= =?us-ascii?Q?C3BcRwOPxOUVujr5zNGHUthggc2DM6KwZRSE8NMozuKD1Z0EODiBidEAn6Zw?= =?us-ascii?Q?jsMx/ZoY7XXiK+uLzJH0hBWcVF+h/xOsfJlQvtagaJZZIULj5o1ItUP66EV1?= =?us-ascii?Q?BSS7pYF0bn05mPkzYgYXkyI5xBerZ+wg5eXIrZAjEBMFvg6UY5HYte9t8kmW?= =?us-ascii?Q?g8zX4TWVLhMhAo5UkozEF6fbXshh8z+V8mwNlnFQNEiBf8HoCQB8J0zSwWwF?= =?us-ascii?Q?jmf8QyrrUbMPMR+q5/DLZadT5Id4+qMdUvd5la/76fU8Zg0jxpgEywjGpVp0?= =?us-ascii?Q?3ByLIhNnCGIvHiQAn25oFDKNPVHXgJnYICxZn99iXrf3txAoV24S65/E2k8w?= =?us-ascii?Q?0LArkwhH1//Xe2DGBT/EHrNM6gFJN+5ZUutFHUkIfGOwwePQmPR4BH5x2MoM?= =?us-ascii?Q?Q6tqtnx1xLqPf9DRqUD4aUoSwFcm8fXwII1YJzjeelpuOun996TU6qXs0ndh?= =?us-ascii?Q?NS709V91gqkvHPOQitOK07/oOfpINHHZVRoI8wzVxssLGAFtNnvR74s0HD2o?= =?us-ascii?Q?9bH1WfsK8pvg1KE=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:06.3585 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fae3a523-9a3b-4c19-e9b3-08dda2eccb60 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCBF.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5719 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reworked from a patch by Alison Schofield Previously, when CXL regions were created through autodiscovery and their resources overlapped with SOFT RESERVED ranges, the soft reserved resource remained in place after region teardown. This left the HPA range unavailable for reuse even after the region was destroyed. Enhance the logic to reliably remove SOFT RESERVED resources associated with a region, regardless of alignment or hierarchy in the iomem tree. Link: https://lore.kernel.org/linux-cxl/29312c0765224ae76862d59a17748c8188f= b95f1.1692638817.git.alison.schofield@intel.com/ Co-developed-by: Alison Schofield Signed-off-by: Alison Schofield Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/acpi.c | 2 + drivers/cxl/core/region.c | 151 ++++++++++++++++++++++++++++++++++++++ drivers/cxl/cxl.h | 5 ++ 3 files changed, 158 insertions(+) diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c index 978f63b32b41..1b1388feb36d 100644 --- a/drivers/cxl/acpi.c +++ b/drivers/cxl/acpi.c @@ -823,6 +823,8 @@ static void cxl_softreserv_mem_work_fn(struct work_stru= ct *work) * and cxl_mem drivers are loaded. */ wait_for_device_probe(); + + cxl_region_softreserv_update(); } static DECLARE_WORK(cxl_sr_work, cxl_softreserv_mem_work_fn); =20 diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 109b8a98c4c7..3a5ca44d65f3 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -3443,6 +3443,157 @@ int cxl_add_to_region(struct cxl_port *root, struct= cxl_endpoint_decoder *cxled) } EXPORT_SYMBOL_NS_GPL(cxl_add_to_region, "CXL"); =20 +static int add_soft_reserved(resource_size_t start, resource_size_t len, + unsigned long flags) +{ + struct resource *res =3D kmalloc(sizeof(*res), GFP_KERNEL); + int rc; + + if (!res) + return -ENOMEM; + + *res =3D DEFINE_RES_MEM_NAMED(start, len, "Soft Reserved"); + + res->desc =3D IORES_DESC_SOFT_RESERVED; + res->flags =3D flags; + rc =3D insert_resource(&iomem_resource, res); + if (rc) { + kfree(res); + return rc; + } + + return 0; +} + +static void remove_soft_reserved(struct cxl_region *cxlr, struct resource = *soft, + resource_size_t start, resource_size_t end) +{ + struct cxl_root_decoder *cxlrd =3D to_cxl_root_decoder(cxlr->dev.parent); + resource_size_t new_start, new_end; + int rc; + + /* Prevent new usage while removing or adjusting the resource */ + guard(mutex)(&cxlrd->range_lock); + + /* Aligns at both resource start and end */ + if (soft->start =3D=3D start && soft->end =3D=3D end) + goto remove; + + /* Aligns at either resource start or end */ + if (soft->start =3D=3D start || soft->end =3D=3D end) { + if (soft->start =3D=3D start) { + new_start =3D end + 1; + new_end =3D soft->end; + } else { + new_start =3D soft->start; + new_end =3D start - 1; + } + + rc =3D add_soft_reserved(new_start, new_end - new_start + 1, + soft->flags); + if (rc) + dev_warn(&cxlr->dev, "cannot add new soft reserved resource at %pa\n", + &new_start); + + /* Remove the original Soft Reserved resource */ + goto remove; + } + + /* + * No alignment. Attempt a 3-way split that removes the part of + * the resource the region occupied, and then creates new soft + * reserved resources for the leading and trailing addr space. + */ + new_start =3D soft->start; + new_end =3D soft->end; + + rc =3D add_soft_reserved(new_start, start - new_start, soft->flags); + if (rc) + dev_warn(&cxlr->dev, "cannot add new soft reserved resource at %pa\n", + &new_start); + + rc =3D add_soft_reserved(end + 1, new_end - end, soft->flags); + if (rc) + dev_warn(&cxlr->dev, "cannot add new soft reserved resource at %pa + 1\n= ", + &end); + +remove: + rc =3D remove_resource(soft); + if (rc) + dev_warn(&cxlr->dev, "cannot remove soft reserved resource %pr\n", + soft); +} + +/* + * normalize_resource + * + * The walk_iomem_res_desc() returns a copy of a resource, not a reference + * to the actual resource in the iomem_resource tree. As a result, + * __release_resource() which relies on pointer equality will fail. + * + * This helper walks the children of the resource's parent to find and + * return the original resource pointer that matches the given resource's + * start and end addresses. + * + * Return: Pointer to the matching original resource in iomem_resource, or + * NULL if not found or invalid input. + */ +static struct resource *normalize_resource(struct resource *res) +{ + if (!res || !res->parent) + return NULL; + + for (struct resource *res_iter =3D res->parent->child; + res_iter !=3D NULL; res_iter =3D res_iter->sibling) { + if ((res_iter->start =3D=3D res->start) && + (res_iter->end =3D=3D res->end)) + return res_iter; + } + + return NULL; +} + +static int __cxl_region_softreserv_update(struct resource *soft, + void *_cxlr) +{ + struct cxl_region *cxlr =3D _cxlr; + struct resource *res =3D cxlr->params.res; + + /* Skip non-intersecting soft-reserved regions */ + if (soft->end < res->start || soft->start > res->end) + return 0; + + soft =3D normalize_resource(soft); + if (!soft) + return -EINVAL; + + remove_soft_reserved(cxlr, soft, res->start, res->end); + + return 0; +} + +int cxl_region_softreserv_update(void) +{ + struct device *dev =3D NULL; + + while ((dev =3D bus_find_next_device(&cxl_bus_type, dev))) { + struct device *put_dev __free(put_device) =3D dev; + struct cxl_region *cxlr; + + if (!is_cxl_region(dev)) + continue; + + cxlr =3D to_cxl_region(dev); + + walk_iomem_res_desc(IORES_DESC_SOFT_RESERVED, + IORESOURCE_MEM, 0, -1, cxlr, + __cxl_region_softreserv_update); + } + + return 0; +} +EXPORT_SYMBOL_NS_GPL(cxl_region_softreserv_update, "CXL"); + u64 cxl_port_get_spa_cache_alias(struct cxl_port *endpoint, u64 spa) { struct cxl_region_ref *iter; diff --git a/drivers/cxl/cxl.h b/drivers/cxl/cxl.h index 1ba7d39c2991..fc39c4b24745 100644 --- a/drivers/cxl/cxl.h +++ b/drivers/cxl/cxl.h @@ -859,6 +859,7 @@ struct cxl_pmem_region *to_cxl_pmem_region(struct devic= e *dev); int cxl_add_to_region(struct cxl_port *root, struct cxl_endpoint_decoder *cxled); struct cxl_dax_region *to_cxl_dax_region(struct device *dev); +int cxl_region_softreserv_update(void); u64 cxl_port_get_spa_cache_alias(struct cxl_port *endpoint, u64 spa); #else static inline bool is_cxl_pmem_region(struct device *dev) @@ -878,6 +879,10 @@ static inline struct cxl_dax_region *to_cxl_dax_region= (struct device *dev) { return NULL; } +static inline int cxl_region_softreserv_update(void) +{ + return 0; +} static inline u64 cxl_port_get_spa_cache_alias(struct cxl_port *endpoint, u64 spa) { --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2059.outbound.protection.outlook.com [40.107.236.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A8CC253F39; Tue, 3 Jun 2025 22:20:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989212; cv=fail; b=LBgT3BD/qPt49M8YAMAYJJBo+udCmF3CJAM7lRiMAL2NEN7/gxbRHctncZCLxFntoRptimwKqd9mvLXmOu+rAyTgbmqXzWnvO+q8vOsXXnXkwNOBfQHFSr2ohMtoHisQFBDgCQ5FR5CgoL4njdw10kLvmcf1gnAwLGz5z69D6qU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989212; c=relaxed/simple; bh=g5OuHNAzAmcd1mtOUouNRCgxjgjiEgFfNdtgo/cSuHY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=taBJKxcQrtovJ2gPuXfgymdWik8QmT9rXX0ysrV6uuYJOk1G6B9dg7pfh7FoqK7TyS/kE0hQMkcqXwZnrkEI0eLtTcaygYocT40FoxfUsxovDvc1v+3AQcRUPdL787xbBL7bUN4br83NMm+OqBTZfO1aLSORQjWwtk2nSgC+BAo= 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=qKsIUTbM; arc=fail smtp.client-ip=40.107.236.59 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="qKsIUTbM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yyoRZNdDKdMA6keGcRI90m4lci0KPckb/RZRROACLs5J/KjXL71rg18eZ9WcGmIFFIAWEDbzP1+G66dgCJ1rq8XeH896Xp3tuCgBUbm5AjsV4Q6fPS8fdptFWb6KzGGvEleV6qwzkDiem+10LxEKCd0QNeVpExm/JKgwaGFcpfdwNe65Ag3pb3peiFLTKF/QkexHtyYsdQZd3LOwwwKm/bI07jmtnb2ToKMuJKiydtZKSrjplaDjNr4BmhP9cEr88Ol6Xx1Rb2MRnE3JBjWNfRLkYzpkz4FRiW9ShQH901m+iqX3UyhI12t1NUflrw18ZrXpNqzvECgs1USQxkHgfw== 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=buMO3LfYHL8RO8UoHaQ5B6GUP+9sOoBoqKH1RQ/FUdE=; b=VxXmxVundBcj7QsiZVIzladUUg3vOmOjgvCAnrEH8KoFoIiAKphBNw9b/7rnBXES3EsdQ/Pg+uFhjw14Dl5c2Q8TZI2aVkX1gLQOpemNWQQ0j4va7jtup4WDXeMLGpmw/kNGqtcrRb+l/iC+i4pbYJRCrLmODDSDVVQtyCNDXEQzaeol/ADZcUMTUa9j2epnAl2KNz/TEWRTIF1Np6H6XkqfpGA+1JgqolYW+7V7KWnJnf1QH5SVxHXo1HyBPowza6jWu7yXfYyOgbQx6BzN4ePX/blGnZtbqa9toumDOOAdSNCuqyGX82RXSHGDs3a4027jtFBjJDDy1cedIC4QkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=buMO3LfYHL8RO8UoHaQ5B6GUP+9sOoBoqKH1RQ/FUdE=; b=qKsIUTbMDzVXkroP4wjJ8h/bIZFFdMnqlkI9K3ieBOQDosIxpX4Y6aCgQBYwcJafgLqSHUlGncMAa46CzCuuAFKS73asihfZ34lih8A2GPGDV6whV2LHTmYivoAGiOJBzVnIjmCU0ujfsEFXzTz8wNcJrJVp2C1QxASpwg1ptPU= Received: from SJ0PR13CA0182.namprd13.prod.outlook.com (2603:10b6:a03:2c3::7) by CH3PR12MB8355.namprd12.prod.outlook.com (2603:10b6:610:131::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 22:20:07 +0000 Received: from CY4PEPF0000FCBF.namprd03.prod.outlook.com (2603:10b6:a03:2c3:cafe::2b) by SJ0PR13CA0182.outlook.office365.com (2603:10b6:a03:2c3::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.19 via Frontend Transport; Tue, 3 Jun 2025 22:20:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCBF.mail.protection.outlook.com (10.167.242.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:07 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:05 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 6/7] dax/hmem: Save the DAX HMEM platform device pointer Date: Tue, 3 Jun 2025 22:19:48 +0000 Message-ID: <20250603221949.53272-7-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBF:EE_|CH3PR12MB8355:EE_ X-MS-Office365-Filtering-Correlation-Id: 138b1f30-b838-4124-ce63-08dda2eccc16 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fGcF9T5phHIkDhsNueCzrfsMgMcZzwMbuTOxtrsoKD+/xY/iLG9ngLyPjpdH?= =?us-ascii?Q?UKD9/roJjG+mAHb2V9yh1Ldl8Jg7H5STz85fgTq55F55kafQgsCUXofHXYgA?= =?us-ascii?Q?r2CqCB7d/leU2BD2x4i3ipObva2mamhXjQ/sX10jmC0I1ke3o+zIXcMblFhL?= =?us-ascii?Q?AqccJ3sqWsx8Ct3SobnMcxeIXPSUaiPU7V1CRGsfJMReEP9i0R5oZ49lm6GQ?= =?us-ascii?Q?8x6vPiaF9Qh90cFvTm/29zuTpmV5yN3GaOk2764ohneMmo3WE7XRppEqqJrh?= =?us-ascii?Q?wHKo7b9cePlQcCj8WtxvVYIMlXYXGmp/KX6q0jL11QeDzm6B03ImSJUwQijd?= =?us-ascii?Q?M31KqP+FS1a0Zn1nDBPLikSEiHblLIsEa5zsHaPT2g5AIcS8KAG90xoGKD2z?= =?us-ascii?Q?kCSYNRRg08ginyZQ2lcrRtDImSK+kBs/6oi9I3PK2VPQBcWpg4BFGDXNNsWe?= =?us-ascii?Q?bYYL1Cpa0TcyidpKmMIVsNxeYBsLXRwkROUXL0PNDgFZq+m+0nYIKB9h6L0y?= =?us-ascii?Q?l+uMe1GprL0AO+CLPPtf/0OOCN7xceWYYtPYPsvc7Tmvh2xBS98Ba+A0qYWb?= =?us-ascii?Q?iEyAqFrMhClprKoE0euJe4CYmu6uhurqOjbvMLTsEXegvVB40xQDlywA2xTA?= =?us-ascii?Q?ASyHd4XxkhxwI4D46ZzhEpkfUZxej6A4PVihBc02T/IWJXvf8K/WAmgIgVit?= =?us-ascii?Q?tUo3y7S347MCBWEd163GaKCP5AULVbhujd8lDybDXL0DycbxPEMWeztI3FOj?= =?us-ascii?Q?kgEqw8ouqmyTW6gnpxy1k9xcmCRtKa7ZkN+gznKQLP3ufpBdVZ5y64qXRni6?= =?us-ascii?Q?xLyaa0/p9RBAIJYEIHvMlIFuibVJrVOB4dfEZKapYLtdWBg8esLrC2wEUQw7?= =?us-ascii?Q?8D+mESbws36VY5W59V4C4LMIRfbybFWruluuq8ahQg0OwuRz0wzJIS9lpxLA?= =?us-ascii?Q?GU2zjY4PeKnSlRiLeHNzseQjVuaRXgDBdk6LUPQ9ICJ9Ji/x4THXtv1eUm0p?= =?us-ascii?Q?9FNejMQCjd8D2NzHDZlT2jrW+VHhupTu/nWIkF1nmAaXxDYnwxBmo2kJJoJd?= =?us-ascii?Q?kYuHQtzVn1WkMTXfgTEVkwfwmNvLlonq/tLo370JJaHPSuRC519w/faik2Es?= =?us-ascii?Q?rUlDgeM3w5/hLJOI6muXvUKuFUkmgNXZA4QZhC6+9q814yM9VAOore8ehhAC?= =?us-ascii?Q?Drf/5pCxXrLvO2i1qbJQ4jow03Pw/4L6C9BAi7U0XMfvsoCprXG+X6nK2kJY?= =?us-ascii?Q?k+/nRFnSoBJCAKpkAnfw2tSabDyBi98JnL6vKdLwWlepWeMnkGkUgTk4XMAu?= =?us-ascii?Q?M3avCinry3M1NqFsZiBkhodQZGrteGWsz/gUu2J5uyv8PB3VRCuO09YVue58?= =?us-ascii?Q?COZ3kRomfkOKgqdWFR8uOZJirwwgwbFhTGVdt0OYgtbhJkB5535jVZOO0uWp?= =?us-ascii?Q?9DhmM8cf3N6q7hXid5bHu/gZqd459QA3eJyRh4WZiq1k7Xh3YhWWlZgrzJPH?= =?us-ascii?Q?APyTasadRPIoutNuH3M0uxu0CurpD9tRbKyJ?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:07.5506 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 138b1f30-b838-4124-ce63-08dda2eccc16 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCBF.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8355 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nathan Fontenot To enable registration of HMEM devices for SOFT RESERVED regions after the DAX HMEM device is initialized, this patch saves a reference to the DAX HMEM platform device. This saved pointer will be used in a follow-up patch to allow late registration of SOFT RESERVED memory ranges. It also enables simplification of the walk_hmem_resources() by removing the need to pass a struct device argument. There are no functional changes. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/dax/hmem/device.c | 4 ++-- drivers/dax/hmem/hmem.c | 9 ++++++--- include/linux/dax.h | 5 ++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/dax/hmem/device.c b/drivers/dax/hmem/device.c index f9e1a76a04a9..59ad44761191 100644 --- a/drivers/dax/hmem/device.c +++ b/drivers/dax/hmem/device.c @@ -17,14 +17,14 @@ static struct resource hmem_active =3D { .flags =3D IORESOURCE_MEM, }; =20 -int walk_hmem_resources(struct device *host, walk_hmem_fn fn) +int walk_hmem_resources(walk_hmem_fn fn) { struct resource *res; int rc =3D 0; =20 mutex_lock(&hmem_resource_lock); for (res =3D hmem_active.child; res; res =3D res->sibling) { - rc =3D fn(host, (int) res->desc, res); + rc =3D fn((int) res->desc, res); if (rc) break; } diff --git a/drivers/dax/hmem/hmem.c b/drivers/dax/hmem/hmem.c index 5e7c53f18491..3aedef5f1be1 100644 --- a/drivers/dax/hmem/hmem.c +++ b/drivers/dax/hmem/hmem.c @@ -9,6 +9,8 @@ static bool region_idle; module_param_named(region_idle, region_idle, bool, 0644); =20 +static struct platform_device *dax_hmem_pdev; + static int dax_hmem_probe(struct platform_device *pdev) { unsigned long flags =3D IORESOURCE_DAX_KMEM; @@ -59,9 +61,9 @@ static void release_hmem(void *pdev) platform_device_unregister(pdev); } =20 -static int hmem_register_device(struct device *host, int target_nid, - const struct resource *res) +static int hmem_register_device(int target_nid, const struct resource *res) { + struct device *host =3D &dax_hmem_pdev->dev; struct platform_device *pdev; struct memregion_info info; long id; @@ -125,7 +127,8 @@ static int hmem_register_device(struct device *host, in= t target_nid, =20 static int dax_hmem_platform_probe(struct platform_device *pdev) { - return walk_hmem_resources(&pdev->dev, hmem_register_device); + dax_hmem_pdev =3D pdev; + return walk_hmem_resources(hmem_register_device); } =20 static struct platform_driver dax_hmem_platform_driver =3D { diff --git a/include/linux/dax.h b/include/linux/dax.h index dcc9fcdf14e4..a4ad3708ea35 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -305,7 +305,6 @@ static inline void hmem_register_resource(int target_ni= d, struct resource *r) } #endif =20 -typedef int (*walk_hmem_fn)(struct device *dev, int target_nid, - const struct resource *res); -int walk_hmem_resources(struct device *dev, walk_hmem_fn fn); +typedef int (*walk_hmem_fn)(int target_nid, const struct resource *res); +int walk_hmem_resources(walk_hmem_fn fn); #endif --=20 2.17.1 From nobody Mon Feb 9 07:03:06 2026 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2076.outbound.protection.outlook.com [40.107.93.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CBFD2550D3; Tue, 3 Jun 2025 22:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.76 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989214; cv=fail; b=ChJzVpDZVnFprjmiQdHZJ7uiwMVnC20itPZu6whJbtggLL6Wn8HzYFrlmtnlEdbXeRrKQL3PNbnemJ3xIwAwUcnp+VNRAygCc6n9Id8lJ13yRJIPPtinIpMINoDJllfAchZgeFZ3G1UfsW53WP7w0bBx4ygHe8JP9hoNsQo9eMA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748989214; c=relaxed/simple; bh=1osBlMvFUlp2kGJU/zmJFdZEI8qYHmB0DKaac0xYUU8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oPO9QMqzsnhusmOWDpnPXTMjqmzwwN+oxDCrdIiARwa1GqV6C72lRzXP2E6yHW5cBHIMzIZN5tfssZiWrPaF5uVPel1q8S/enEPH1ArAw2GrYx86cOINPHpaHaHjMjmB0vDwZI2jp9ipGgUXF2b/L2glRHVvbdRnlMgtKYYs7S0= 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=DcuzcDVf; arc=fail smtp.client-ip=40.107.93.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DcuzcDVf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uGyQtz3fQ93gFFw74s6V7UPZF6yFGjecd4euR9aJMbRXPsvdVn94XDbjw0dAaFVE0zDzN4ApRsq5cNAzElsEpttXPCCpxlafg8VIIixZJXQC8NIxyeFGS5BrqkAyJbzhhNqxzjd9atjQCpAL6oa0XmLFnzGEHlpVznWeDC3SeURy9DzLcODpA1nPzsYAP7qWgrxD2OCvG58gwbSHcfSYAmnCc4Gn27aoGw97/DP9zci22YP8fm7/IKmYbeibhsh0wbKbUcnR8pBR6hKfFLQ8nTbwQ1ZmedRToXG6efXoYJRpgXg3NWuVPiqW3gR8/21Lh2noaopMfivOP5E1gTHLWw== 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=K9fmUy2piLdGGKbNxeBJ3C6cYSaNbZu7eNQuByQYbSo=; b=YTBJ3dJu98boKtzuACPy8LjdRijDDCsAzY5kFz2LLFIDy9F9EbHa4CM67EGcSXWeRcV8yxa5tyuU9EI4eVj85uRn9FgyO0wE3xpciRU4GOXJ4GjNjdrPScgFIr281IwQS+jSX4/kymANOH+aVcj6opqja+EUuKaGCJCxjdiVcjPJA+I985HFPy45UGrSDS8CYGJrHTYfTr37ORKtobyDqtOJWA9bpwAlVzHtElo1HosZh5oGm0zE7YvKL0zhtnW3Z8pu1lSMEO7Lxy2QUSvwkA+VVNIKlbGPmxgTt65HVsg75CozMSHOcrsBg0bOeYyUzBdRUcpQRPH/T2T+7SD1/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K9fmUy2piLdGGKbNxeBJ3C6cYSaNbZu7eNQuByQYbSo=; b=DcuzcDVfwlU0pWUObrdCff0cA4ZZQX+l2cbFaPrwagRXL11d9DXEAu7W4rmLc7AaGoaDX3r+Hv8g+FlwnIHM9Ik3YLDkt85Qfsgq9JMjEMuvs19moc/XSQhYpSxBbHawb9cRZXYHe/KukWO48xcEVvBE9BQ9qHTY+OIiSwYbN1g= Received: from SJ0PR13CA0199.namprd13.prod.outlook.com (2603:10b6:a03:2c3::24) by DM4PR12MB6039.namprd12.prod.outlook.com (2603:10b6:8:aa::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 22:20:09 +0000 Received: from CY4PEPF0000FCBF.namprd03.prod.outlook.com (2603:10b6:a03:2c3:cafe::dd) by SJ0PR13CA0199.outlook.office365.com (2603:10b6:a03:2c3::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.26 via Frontend Transport; Tue, 3 Jun 2025 22:20:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000FCBF.mail.protection.outlook.com (10.167.242.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8792.29 via Frontend Transport; Tue, 3 Jun 2025 22:20:08 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 3 Jun 2025 17:20:06 -0500 From: Smita Koralahalli To: , , , , CC: Davidlohr Bueso , Jonathan Cameron , Dave Jiang , "Alison Schofield" , Vishal Verma , Ira Weiny , Dan Williams , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg KH , Nathan Fontenot , Smita Koralahalli , Terry Bowman , Robert Richter , Benjamin Cheatham , PradeepVineshReddy Kodamati , Zhijian Li Subject: [PATCH v4 7/7] cxl/dax: Defer DAX consumption of SOFT RESERVED resources until after CXL region creation Date: Tue, 3 Jun 2025 22:19:49 +0000 Message-ID: <20250603221949.53272-8-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> References: <20250603221949.53272-1-Smita.KoralahalliChannabasappa@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBF:EE_|DM4PR12MB6039:EE_ X-MS-Office365-Filtering-Correlation-Id: cac8e9a6-6d1b-427c-a759-08dda2eccca4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Z3hIbkdtd241RzdIaENNTUJBeDdYbTdKbTdSOW9vSkdmYVRIeTVZN0loUGd5?= =?utf-8?B?YUZFd1RFQnBTbDZLT0draEVIdllhV0VyN0NweTg0a2Ewc2N1amQ5b1pTYWwz?= =?utf-8?B?YXVTTjFYeDJpendJYzhyUkhGMGJPaXlqRFU5bDRicVcwZjBWYTdsWFVQMlF5?= =?utf-8?B?STYyZmlLNFYrQ2ZtWkRidHBMdWNnUnVFQThudlZUbEN2RGZibmtOZVBzTjhy?= =?utf-8?B?R0J6VTNuVEJqTFBPZmZuQVRkWTNWWFlvcmJzVDdEOXg5TlZpSm1VR00xUnJE?= =?utf-8?B?Vlc3bFlQbEczckc0L2RPUXhCNVYxNkZyUzR6S3VCZG1mTWFDYWl6VzhXUmFw?= =?utf-8?B?ZzVoY2VpellKcjJWWG5qaVh1aDh4RU0xcngzaEI5TTlMWXJHTUR3V2tHdFdk?= =?utf-8?B?ZGVnTnZyRFIwSGdBTVRDRWdXZWxzTlRmQ0VzMVhWQzluQy9sRWFCSnZHNlFK?= =?utf-8?B?UHZOeTduZUU3SWpFU04wbUtsVEtUdTJDRXhnUkViQm5GbUdKSVFtN1J2QXM1?= =?utf-8?B?OEJyOTAyelJGRWlnRmdJSC9udW1TTUp6bzBEWkhpejU4TDZQQnhLR29WQkRS?= =?utf-8?B?Ym9PMTJ3MXBPWlIwRkNOdS9FcXV1SFFSb0c3T1N0Q0ZqM0h0NFBlRVhIbWpO?= =?utf-8?B?YUpxa3JVd0ZGSldNMUFIQTdhTERmd2xMZjhaVy9COE1OenZ5REVnM24rMHBx?= =?utf-8?B?eldvZzJrb0RrQ0pBSTRwZFJYRFE0S0pEMnZ4SWhiTG1PaC9WazJROU5hSmoz?= =?utf-8?B?YllVdEcyT2M2cC9QWXlzK2J3NGk4bXJRZE02UXpPdjAvcmZUdVdGYlcvUHA5?= =?utf-8?B?RVRSc0dGbjNVOTFrRE5QZzVtTWZFbUlZbm5aQmJqbHJaT1BLdG1NMHByMEk2?= =?utf-8?B?U01PV21RbkhRWElqWnVNZzM0czhFTzFNR1pJbzQwaitxb0ZUc2MwSjZScnl0?= =?utf-8?B?TS8yS05jdDh3SEFJWDJGNkRZNHNXWnFXWml1QjAvS0RxUEZTSTJ5TWlVeHY5?= =?utf-8?B?eWN2WDc5MTdkZG9rYUpYWis0QmRpdU93c0U4SXIrcWR3RmZuOTF0VklDZDVj?= =?utf-8?B?c2oxUDVMMHUwVDdRU1ZFcE5vbHVXZzQ0UVhML1YzRUhjK1Qvb2VnQmplZmth?= =?utf-8?B?bnRyZnRjSDNJdWV6M3ZjakVPOEJrU2RXY0t2U3hSaDVRZ3h5RVR1VjZTdDdV?= =?utf-8?B?ZVI1K2tUcFdXeHd0SmZzSnY1aVB4QXFMR01GUVN3UXlpZmltQktrQjBSd204?= =?utf-8?B?NmJ2SWtqUXR2YzVlNDJSeEpxV3JLTkZoc1NRZzIwMktXclJDdUxQWWtCYzc1?= =?utf-8?B?dzFNSGdwUlRpQktYd1VMOUNOempDYXNqRlBjeFFmLzQ3cHRuN0ZGdkhwNGNL?= =?utf-8?B?L1NEWXRXbmJ0WElubnBPczFZVnd5MzlNMnR5WEdXSk9qSDVMUm9hWHZGakhY?= =?utf-8?B?UnVTdUJkejhwbVgyb1hIcEJYTzhkV2RhT05JUDBkbTNBdjRtU1kzdXQ4MEFQ?= =?utf-8?B?NEpiTFJKQVhMTStHK1pzakhMNStVdU5zeGN0RDVrbnhHN0Q4Z2IwWlZtWlBN?= =?utf-8?B?YkhBZVBKY2lveFNBd084QlprWnZzTm1yaXVnQ3BWdUFlQXcvWWhKOEhZTGg1?= =?utf-8?B?YSt6a3lZalhPRVZ1MW9hTVc2ZjVPcnFFNzR5dlRJRDhMSFJBdkVka0NlU29p?= =?utf-8?B?aThsZ3EzeFVZc2VGQ3BNL0dBby84TjVvU0R6bXV4R0prbHJwQlpmNVVDaTFM?= =?utf-8?B?R2JlSkxvSksydlFiRmJuaW5LTmN5THRaYjI1eWFna1cxVWNXTGtaNWNjODRh?= =?utf-8?B?MU82R0lMMzZUTXE3UkFaZ0JYRVlDSC8ycktRSERTZFRIclFEK2xUdFdSYjZO?= =?utf-8?B?STNnZ2ZSTytEbjNiVHk3QnhYVDBSeHBkL1R1aU9UOERNYkovc2RaSXV4Skcx?= =?utf-8?B?MEUvOFJtN1cvUTZzUk5sL0J1RHpEVFBzNnNiTUh4YXlRMngrRUwzQzlsTTJX?= =?utf-8?B?UHRFbzIzZkp0MitnRmVvSmFreUlBL1dGRnFqRjVEQVdlMGRNaGsyR3JSRHNj?= =?utf-8?Q?yv9g+y?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2025 22:20:08.5214 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cac8e9a6-6d1b-427c-a759-08dda2eccca4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCBF.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6039 From: Nathan Fontenot The DAX HMEM driver currently consumes all SOFT RESERVED iomem resources during initialization. This interferes with the CXL driver=E2=80=99s abilit= y to create regions and trim overlapping SOFT RESERVED ranges before DAX uses them. To resolve this, defer the DAX driver's resource consumption if the cxl_acpi driver is enabled. The DAX HMEM initialization skips walking the iomem resource tree in this case. After CXL region creation completes, any remaining SOFT RESERVED resources are explicitly registered with the DAX driver by the CXL driver. This sequencing ensures proper handling of overlaps and fixes hotplug failures. Co-developed-by: Nathan Fontenot Signed-off-by: Nathan Fontenot Co-developed-by: Terry Bowman Signed-off-by: Terry Bowman Signed-off-by: Smita Koralahalli Tested-by: Li Zhijian --- drivers/cxl/core/region.c | 10 +++++++++ drivers/dax/hmem/device.c | 43 ++++++++++++++++++++------------------- drivers/dax/hmem/hmem.c | 3 ++- include/linux/dax.h | 6 ++++++ 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 3a5ca44d65f3..c6c0c7ba3b20 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include "core.h" @@ -3553,6 +3554,11 @@ static struct resource *normalize_resource(struct re= source *res) return NULL; } =20 +static int cxl_softreserv_mem_register(struct resource *res, void *unused) +{ + return hmem_register_device(phys_to_target_node(res->start), res); +} + static int __cxl_region_softreserv_update(struct resource *soft, void *_cxlr) { @@ -3590,6 +3596,10 @@ int cxl_region_softreserv_update(void) __cxl_region_softreserv_update); } =20 + /* Now register any remaining SOFT RESERVES with DAX */ + walk_iomem_res_desc(IORES_DESC_SOFT_RESERVED, IORESOURCE_MEM, + 0, -1, NULL, cxl_softreserv_mem_register); + return 0; } EXPORT_SYMBOL_NS_GPL(cxl_region_softreserv_update, "CXL"); diff --git a/drivers/dax/hmem/device.c b/drivers/dax/hmem/device.c index 59ad44761191..cc1ed7bbdb1a 100644 --- a/drivers/dax/hmem/device.c +++ b/drivers/dax/hmem/device.c @@ -8,7 +8,6 @@ static bool nohmem; module_param_named(disable, nohmem, bool, 0444); =20 -static bool platform_initialized; static DEFINE_MUTEX(hmem_resource_lock); static struct resource hmem_active =3D { .name =3D "HMEM devices", @@ -35,9 +34,7 @@ EXPORT_SYMBOL_GPL(walk_hmem_resources); =20 static void __hmem_register_resource(int target_nid, struct resource *res) { - struct platform_device *pdev; struct resource *new; - int rc; =20 new =3D __request_region(&hmem_active, res->start, resource_size(res), "", 0); @@ -47,21 +44,6 @@ static void __hmem_register_resource(int target_nid, str= uct resource *res) } =20 new->desc =3D target_nid; - - if (platform_initialized) - return; - - pdev =3D platform_device_alloc("hmem_platform", 0); - if (!pdev) { - pr_err_once("failed to register device-dax hmem_platform device\n"); - return; - } - - rc =3D platform_device_add(pdev); - if (rc) - platform_device_put(pdev); - else - platform_initialized =3D true; } =20 void hmem_register_resource(int target_nid, struct resource *res) @@ -83,9 +65,28 @@ static __init int hmem_register_one(struct resource *res= , void *data) =20 static __init int hmem_init(void) { - walk_iomem_res_desc(IORES_DESC_SOFT_RESERVED, - IORESOURCE_MEM, 0, -1, NULL, hmem_register_one); - return 0; + struct platform_device *pdev; + int rc; + + if (!IS_ENABLED(CONFIG_CXL_ACPI)) { + walk_iomem_res_desc(IORES_DESC_SOFT_RESERVED, + IORESOURCE_MEM, 0, -1, NULL, + hmem_register_one); + } + + pdev =3D platform_device_alloc("hmem_platform", 0); + if (!pdev) { + pr_err("failed to register device-dax hmem_platform device\n"); + return -1; + } + + rc =3D platform_device_add(pdev); + if (rc) { + pr_err("failed to add device-dax hmem_platform device\n"); + platform_device_put(pdev); + } + + return rc; } =20 /* diff --git a/drivers/dax/hmem/hmem.c b/drivers/dax/hmem/hmem.c index 3aedef5f1be1..a206b9b383e4 100644 --- a/drivers/dax/hmem/hmem.c +++ b/drivers/dax/hmem/hmem.c @@ -61,7 +61,7 @@ static void release_hmem(void *pdev) platform_device_unregister(pdev); } =20 -static int hmem_register_device(int target_nid, const struct resource *res) +int hmem_register_device(int target_nid, const struct resource *res) { struct device *host =3D &dax_hmem_pdev->dev; struct platform_device *pdev; @@ -124,6 +124,7 @@ static int hmem_register_device(int target_nid, const s= truct resource *res) platform_device_put(pdev); return rc; } +EXPORT_SYMBOL_GPL(hmem_register_device); =20 static int dax_hmem_platform_probe(struct platform_device *pdev) { diff --git a/include/linux/dax.h b/include/linux/dax.h index a4ad3708ea35..5052dca8b3bc 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -299,10 +299,16 @@ static inline int dax_mem2blk_err(int err) =20 #ifdef CONFIG_DEV_DAX_HMEM_DEVICES void hmem_register_resource(int target_nid, struct resource *r); +int hmem_register_device(int target_nid, const struct resource *res); #else static inline void hmem_register_resource(int target_nid, struct resource = *r) { } + +static inline int hmem_register_device(int target_nid, const struct resour= ce *res) +{ + return 0; +} #endif =20 typedef int (*walk_hmem_fn)(int target_nid, const struct resource *res); --=20 2.17.1