From nobody Sun Apr 5 16:32:45 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012009.outbound.protection.outlook.com [40.107.200.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D00F237D11D; Sun, 22 Mar 2026 19:54:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774209247; cv=fail; b=MlGXRDNKsrADPAliJQjPOFJYnR08lOc+FhCLJW6yt6wLHGXyil6RMyuculAyisVABU6kpi+9mQNd6UJ7+RyIG5fu/KHwRg1WmDMsDUDiTMpq9BSANrXQkp8VPdsTpz4U8ddxoc2yF9ZBU4nF81nI7T3cG7Qtj31/u4I+pCwtAbo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774209247; c=relaxed/simple; bh=p6RolRsSRS8Z+16Ku2/zxl1+Z0/L2HBZxyrVTAHdvsM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=U6CCSOvrcGu11TQ5DzELFwo3R5U2dYrvsBtteJgVui4get8DgzlJwZkCWjMO2+M2lSYDU0qGtVfwgDJn97nBwD3r0GX4oc5sSzj79/JbpnYGv8/sdjpIru1MuSmtFR6GBpuk/DN7UzXkg7eW4DTyYDIOyN68FPYFMNosAx7ka8U= 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=oUaTauc3; arc=fail smtp.client-ip=40.107.200.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="oUaTauc3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O7nPmp7IptOelpLrkdcjZ+hIlSLlZrZNWjvydbHHNwHXfdskWu+0funhbBVztsI03XGc0baiXvbMklGc2/zi8Frb3pwNrvz4iuRei5vnRgNgUDLva5ruQgCBUbK6Vb/pAPqXByMXcgJvQMjr57vPYMM6pUlQaIuXyssSeZxjV9W5PaA6IU6bCOPA+OkehfK0UJQTgmwHfc2Jw+gu5ga8OQYLdTaP/rI0gQWpDoPG8mxqPe+hWhBm30ydAbJTQrSHh/FrtIiOQ9fMywur/57+SixP2MoiLqKzzgKcrvfN9AlUhTpt8oTJcvW60XhbvZLl0odLfNDli+plqFjS3r0cpg== 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=4DP0t0eS8SW+roTZpq1XYy34wLQKLkoy+NI7r18WiK8=; b=aZ1VlvohXGBSm1mfR/Q1JrL+5T/gOVMu/tQXQV4NwlN/JTnuxEyMasbG8ywQZykxiECK/bTw4IL99JVY/v1py9U5ilGSxkabuXnEiMSi5n3rbCdq6cDDdIuayNmTsF7Ug1AoRWdfW6s0Ta68gMz1/iSBPrDOgJatj+k1SioCEyl5peYNm9tzgKhe08HiFjwNWgLTSM8Zq3eFcKDeznSwcCaoTu0Xdq+4CYualbfK5vwCtCBgWVLfrc0uZ169vNcdTwoc5rBC6C5sfIDrB7U3Y0wmMO0euwTV9Jiu/0jteHN6hcdciq6EXlZVlCD9pP3tzwjvsHAQIqcz3UCCxATFZw== 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=4DP0t0eS8SW+roTZpq1XYy34wLQKLkoy+NI7r18WiK8=; b=oUaTauc3pSZGL3LrP4c4HrG08wG5RCrf/3U6cUKRH9mrh3xM94I38WHsaVwFtCJz5IGQIT3AP64ubpNpx3jMwMoKAuDwQ2Zu3kUokSgtWzBAk+z87PPArptSVJtQ1orD1yTl9SJltb5RWGeld6wgLKSZtzLIL8Ezto96pWpRhb0= Received: from CH0P221CA0016.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11c::18) by SJ2PR12MB8738.namprd12.prod.outlook.com (2603:10b6:a03:548::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Sun, 22 Mar 2026 19:53:59 +0000 Received: from DS3PEPF0000C37E.namprd04.prod.outlook.com (2603:10b6:610:11c:cafe::ee) by CH0P221CA0016.outlook.office365.com (2603:10b6:610:11c::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.25 via Frontend Transport; Sun, 22 Mar 2026 19:53:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS3PEPF0000C37E.mail.protection.outlook.com (10.167.23.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Sun, 22 Mar 2026 19:53:58 +0000 Received: from ethanolx50f7host.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Sun, 22 Mar 2026 14:53:57 -0500 From: Smita Koralahalli To: , , , , CC: Ard Biesheuvel , Alison Schofield , Vishal Verma , "Ira Weiny" , Dan Williams , Jonathan Cameron , Yazen Ghannam , Dave Jiang , Davidlohr Bueso , Matthew Wilcox , Jan Kara , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Li Ming , Jeff Johnson , "Ying Huang" , Yao Xingtao , Peter Zijlstra , Greg Kroah-Hartman , Nathan Fontenot , Terry Bowman , Robert Richter , Benjamin Cheatham , Zhijian Li , Borislav Petkov , Smita Koralahalli , Tomasz Wolski Subject: [PATCH v8 5/9] dax/cxl, hmem: Initialize hmem early and defer dax_cxl binding Date: Sun, 22 Mar 2026 19:53:38 +0000 Message-ID: <20260322195343.206900-6-Smita.KoralahalliChannabasappa@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260322195343.206900-1-Smita.KoralahalliChannabasappa@amd.com> References: <20260322195343.206900-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: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37E:EE_|SJ2PR12MB8738:EE_ X-MS-Office365-Filtering-Correlation-Id: b5c30cdf-43fa-46b5-82c2-08de884cc216 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|1800799024|376014|82310400026|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: wSjOnu0KonQeH6Rl6WGVUKGP7haxMiRDfY6neTaeZYGqyIZd2MoPTF0lWjGcZgvgaQVRhna5iTtAK6ww/P5N0TivEyMbkwE6Cv+KwhtTwfGbzST9NpdZO1KbUfAEHOt78ZVa4qgdpmMqDSLtOfXwK/w3XpGrGHcjNWuWjcfKcU34d73HibKFQQcSL+2xM30/gnRlJDoMUMOOtKLYnvuWNJCm9lEH8dqMb4iHGFK1asO2DmniKedhHcxlSwVIFKXEosVQNZiPgSBG9HRnCXnzHk4UXTZinQFo1icJHPcNFqF2VHWUPVIcvXaNnePiB5QZesBdzygHpwPNUHhaAj3daENSZx77E/UQwXylF/xBgA4ccWFV2+CWR6makQp2gAI9ycImCiDWa/GU7fkPgt30zKssrDdpHzfJozXV8NvvBTwm2zZXKunGa3naIaSkiyMr7HwoAbvqClYbkJmt+TJzxylSadg4Gkb3QJaaIt6KaL7UIvH/qr/MBJ+bELjBe5XEP/SSJTcFXqziujSShOJOG+xUIJUa3Mz9TBhRiCYhd9g+EeLUzYO8uf9pZjjlcvrzfI1p3wcYIhC+GAXR3OR+B+ptuIP8SDPaBPLh/cfay13jBD/WRzShEZHzJdGEtxdwAKe9UwsZ3Xa6I82tyrN5Dx4k2shOa8pfTkygDYscqvKLtYZgztfwYhc6dqtYS/AvCn2vQM3idGiD88HzQ9D5LjtLI8VgohRRiQO9tc8ha0eD9RLhU6MH3mRCeSFry9DZbZXl4P7TQT5cOsd98l4n4g== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(1800799024)(376014)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ScOnaer4fMwkaSW8+yxYFHoWh26HGl4SsctSwNrzKZLsTLvC+GYH3ErkJ+7XT3oAUW/4nCkVj47u6yknVivPQTK4tl5h2YYMWtJFYC2ksGHT0aLpgrq+DMICCilwYvdeaXuOm1grrYZQX24E8vtNYgAfsYJnPhqQELehFy0/IZGgHa9sTBq4vwJ7HVQnVoXOns+pfqo9mPGfjLBfjtZ8ItzC6brIFHyu63OgjgMnKiOO7gwkZn3PmOrnSXWAstyDVLp8FNXSvq99omRhZyn+2RrvUNat6yTNmwlF2VEjF8CTqX5XgLwe8o+AurhA9jEoJrRf8VGOVedVSfL/AltQf6LrEyzagTpUY9uQOSMMSypv96MtD6IOmXgb79OC7b8+QQB5WF9UcqoSIhYJ7fT9TNPfTtk6nlXk/4jdzeSTS5+hC9Q8Twt0qf4lXoIkkqFo X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2026 19:53:58.7895 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5c30cdf-43fa-46b5-82c2-08de884cc216 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37E.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8738 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Dan Williams Move hmem/ earlier in the dax Makefile so that hmem_init() runs before dax_cxl. In addition, defer registration of the dax_cxl driver to a workqueue instead of using module_cxl_driver(). This ensures that dax_hmem has an opportunity to initialize and register its deferred callback and make ownership decisions before dax_cxl begins probing and claiming Soft Reserved ranges. Mark the dax_cxl driver as PROBE_PREFER_ASYNCHRONOUS so its probe runs out of line from other synchronous probing avoiding ordering dependencies while coordinating ownership decisions with dax_hmem. Signed-off-by: Dan Williams Signed-off-by: Smita Koralahalli Reviewed-by: Dave Jiang Reviewed-by: Jonathan Cameron --- drivers/dax/Makefile | 3 +-- drivers/dax/cxl.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/dax/Makefile b/drivers/dax/Makefile index 5ed5c39857c8..70e996bf1526 100644 --- a/drivers/dax/Makefile +++ b/drivers/dax/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 +obj-y +=3D hmem/ obj-$(CONFIG_DAX) +=3D dax.o obj-$(CONFIG_DEV_DAX) +=3D device_dax.o obj-$(CONFIG_DEV_DAX_KMEM) +=3D kmem.o @@ -10,5 +11,3 @@ dax-y +=3D bus.o device_dax-y :=3D device.o dax_pmem-y :=3D pmem.o dax_cxl-y :=3D cxl.o - -obj-y +=3D hmem/ diff --git a/drivers/dax/cxl.c b/drivers/dax/cxl.c index 13cd94d32ff7..a2136adfa186 100644 --- a/drivers/dax/cxl.c +++ b/drivers/dax/cxl.c @@ -38,10 +38,35 @@ static struct cxl_driver cxl_dax_region_driver =3D { .id =3D CXL_DEVICE_DAX_REGION, .drv =3D { .suppress_bind_attrs =3D true, + .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, }, }; =20 -module_cxl_driver(cxl_dax_region_driver); +static void cxl_dax_region_driver_register(struct work_struct *work) +{ + cxl_driver_register(&cxl_dax_region_driver); +} + +static DECLARE_WORK(cxl_dax_region_driver_work, cxl_dax_region_driver_regi= ster); + +static int __init cxl_dax_region_init(void) +{ + /* + * Need to resolve a race with dax_hmem wanting to drive regions + * instead of CXL + */ + queue_work(system_long_wq, &cxl_dax_region_driver_work); + return 0; +} +module_init(cxl_dax_region_init); + +static void __exit cxl_dax_region_exit(void) +{ + flush_work(&cxl_dax_region_driver_work); + cxl_driver_unregister(&cxl_dax_region_driver); +} +module_exit(cxl_dax_region_exit); + MODULE_ALIAS_CXL(CXL_DEVICE_DAX_REGION); MODULE_DESCRIPTION("CXL DAX: direct access to CXL regions"); MODULE_LICENSE("GPL"); --=20 2.17.1