From patchwork Sun Apr 13 22:52:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ira Weiny X-Patchwork-Id: 14049473 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 048A41FECBA for ; Sun, 13 Apr 2025 22:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744584747; cv=fail; b=WHKFreBLdzoSsaNh5+u8O377q554SFjvT3IZqKGBo//FbHQBafaz2ZHGb7qmoSyUdHy73PEB4aGTN7in4VQPsfPTUBBuUwCJvR+Xq23KvwwkqLNGBEtc3FbmL5gXoVyQNWIg9C9hUqtR2FMlWTt/Uvgi0BJJIv0K52UjgcFKghA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744584747; c=relaxed/simple; bh=wkudF2XNTcQS8VPUDMQ571w4CvWff5yrKjJtNZtBW2s=; h=From:Date:Subject:Content-Type:Message-ID:References:In-Reply-To: To:CC:MIME-Version; b=U3szl7pzePmDN7/w4+C7EPUPiYCSprx0nL5B8mzga6Kdfi50DkrtZnQuahKCYikuIKpWyrbyokjjXO0cOrFqVQpqyTZRjkL8z32mSxq8cTVVOw8Rhj9fxj1am/Q4+6xgxlpH7KP2WvVyjk8bdMWZzNhLgW0H63yxEkB2TuRRMlg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DUBXH5ca; arc=fail smtp.client-ip=192.198.163.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DUBXH5ca" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744584745; x=1776120745; h=from:date:subject:content-transfer-encoding:message-id: references:in-reply-to:to:cc:mime-version; bh=wkudF2XNTcQS8VPUDMQ571w4CvWff5yrKjJtNZtBW2s=; b=DUBXH5cai9lmW2iG6HcWGmdk6toSJwz4DBH+QHvYDNe7kUe0uhMwjfmw Ae4pSN2CUMm1358NW1N7LQ1LyKkuXWKlr6Y0ARGZntpQk1JJzTSrhGk8L oUvRk/3Oapqdd9ijtnWQhB/2uxycLxSiur6zySJbxsxOMEPQG1CgpZ3X+ /9Z2ZGHb/9jIc0sJRQz8vxepphK3eoy11+npJWWpJaUT3VjHt6JEhAFi5 oze5+7Qv3WC9HQglaRhQrZTebbrsg9eKxf9fQZaus2n03G34bldum52X4 ZdeDYijAXQHkQejCPEegtV8gGmefUU39edKE9EIO51lb/jr43AazE/sfD g==; X-CSE-ConnectionGUID: 8bsd7F2gTyCeUGD6amR0yQ== X-CSE-MsgGUID: 1ZA9Oq36TbKcoXKJ5HWqdA== X-IronPort-AV: E=McAfee;i="6700,10204,11402"; a="45280947" X-IronPort-AV: E=Sophos;i="6.15,211,1739865600"; d="scan'208";a="45280947" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2025 15:52:22 -0700 X-CSE-ConnectionGUID: 63yr2e9gTqqcH3hTpgEfDw== X-CSE-MsgGUID: /cihgiucQ8W8OupWJpRtgg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,211,1739865600"; d="scan'208";a="129657627" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2025 15:52:22 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 13 Apr 2025 15:52:21 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Sun, 13 Apr 2025 15:52:21 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.48) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Sun, 13 Apr 2025 15:52:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WaEqpOAEbVU9uT/MCZX+XZ0VJKOIoVg5TugwxWSDMkuZpAimSXRmDbtGw64BWAxMWzpbMX5sLkNht73POhbxOUw8uliHhRfzUeZPAoJuPxyRl+rZmQK2eMgAgUaSGAJ+r0NCQBZ/wgmUgkJNhmTTaPiVOWdvqWXuSk7AktlLSvHpl1GHG06Fv29m8/TrZDVJbzE/RFxNNUgvh6oc222Ar0PlQbYZqWfT7fxmO/Bhaksez6jE4wcsn4H+6ih8DdgoNhfp7AMFE821Q0Uq/EZngptpCU5oqbSQTGczjLijeRExVJ6rstvkeNrHcQzrRKg2Jua0WjupC+5FkIjXgKavIQ== 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=xHChTg9LEV/qJAb1pJTzHBnMQyur4fyxjR7vjkIpdhk=; b=IBJelhyhXSOjQcUVOngq8tQEm2FT8+jx1RsGZAglEXIcQYTBc453ETWaG3yQGzmTZcvsrdNZ9Za52ih1eDfLgMr7/ARXhgxcLT7Nrl+JZyKASoPIKdzBvLYDypUvrOHt40kw+CrbFEiZlHnewMXU/9D5s8SmjNuM3+VJA+OpTSon+3cEsACInz3YokPd/J8f8BuHCiMHrUy+nFNWZMq3hILKluwOrcgWv3d8WEt1EarU9ffNrD6C70nmPINZ6etzfoLoDMQoWhI94JgH28Y16ukKCulEvOBt08omRrxAEN3Xk9conjWcDa5drIe/DWQ5bVGoWAFoYpJElyzfkjCRcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from MW4PR11MB6739.namprd11.prod.outlook.com (2603:10b6:303:20b::19) by DM4PR11MB6042.namprd11.prod.outlook.com (2603:10b6:8:61::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Sun, 13 Apr 2025 22:52:00 +0000 Received: from MW4PR11MB6739.namprd11.prod.outlook.com ([fe80::a7ad:a6e8:fced:3f24]) by MW4PR11MB6739.namprd11.prod.outlook.com ([fe80::a7ad:a6e8:fced:3f24%4]) with mapi id 15.20.8606.033; Sun, 13 Apr 2025 22:52:00 +0000 From: Ira Weiny Date: Sun, 13 Apr 2025 17:52:19 -0500 Subject: [PATCH v9 11/19] cxl/core: Return endpoint decoder information from region search Message-ID: <20250413-dcd-type2-upstream-v9-11-1d4911a0b365@intel.com> References: <20250413-dcd-type2-upstream-v9-0-1d4911a0b365@intel.com> In-Reply-To: <20250413-dcd-type2-upstream-v9-0-1d4911a0b365@intel.com> To: Dave Jiang , Fan Ni , "Jonathan Cameron" CC: Dan Williams , Davidlohr Bueso , Alison Schofield , "Vishal Verma" , Ira Weiny , , , , Li Ming X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744584735; l=4478; i=ira.weiny@intel.com; s=20221211; h=from:subject:message-id; bh=wkudF2XNTcQS8VPUDMQ571w4CvWff5yrKjJtNZtBW2s=; b=qhzG4PaAzvVurrvwp6PNMi09MOnwGo2di6304YuKuEHO3itK6l3RaQvXu6NjdjeEvBwwQzhxv 4ZGYHmnYlMJAkvmhyDnvAe+Kx2gnwgxxb71xVol0j6jm5WWesbpJ9TU X-Developer-Key: i=ira.weiny@intel.com; a=ed25519; pk=noldbkG+Wp1qXRrrkfY1QJpDf7QsOEthbOT7vm0PqsE= X-ClientProxiedBy: MW4PR03CA0227.namprd03.prod.outlook.com (2603:10b6:303:b9::22) To MW4PR11MB6739.namprd11.prod.outlook.com (2603:10b6:303:20b::19) Precedence: bulk X-Mailing-List: nvdimm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR11MB6739:EE_|DM4PR11MB6042:EE_ X-MS-Office365-Filtering-Correlation-Id: d89e3e88-eafe-4c1d-c85f-08dd7addcd11 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?q?Q7gYb76sM/D2VKlxlVEi6D8OAjb39fQ?= =?utf-8?q?siWTDRMAspl4nZws6ab2P17t0csaC30QFL6hjbV71FI9DAitPqCLn+VJ6Ipw+XihT?= =?utf-8?q?BmBSNCDLYOgNH6jraDuGzypQdprhBD0PA5+RzNjPISEqq+hUZRZK/k6Le6YQU9NK1?= =?utf-8?q?lhhFqdLhBE3T1ucd3629FCDlFz562FMhhliRvbY5duoy1Ju93CftqqG64IURbYIcY?= =?utf-8?q?IQNnoASLTWTo4iTmRUdqQQHt5CDOTAKehOBzu0ok8X4bS8KkOgOoAxJClpvwcN1tm?= =?utf-8?q?jzjaHp2jzztnzm1Yio8xDcDkn6eaKxNulnOpiEmeosszsMZT2DrW45GQ20dQOXpEk?= =?utf-8?q?EMdNfxeBFbkBGwTR4e/waT+cZIToNscr5/3pQ7CXAuW6YEjAafx0u6AIgavT9d+E2?= =?utf-8?q?FeBkfg3wOD+Ils+U92EXQ8YEkm7wrWgrKtqc7iX1k81dv4gp8OSb87k52z16RiiWr?= =?utf-8?q?yXIupgvhVgiRdwoYY+u1kWLe1zsmQGymQgH82AaTfgJRyPWTPYm88XpDouXIzDmfC?= =?utf-8?q?vki7ohBmNDLqhN4ehAIgnVjiPpizM9ldnxxXT5mRiFQFmOKr/UG1OtjhxDPn6rDEA?= =?utf-8?q?CYDZeW6LtaBWNodjxvqub/zTibFr49u34WUHPPGOrZRkXLAv23BDWJJ9ZhPisAQNd?= =?utf-8?q?xlacraB1Z8Zu31Tn0Wtc/EmYu1LK5ip/XXolbQyzwv2HXr8rf8fWQLjSj4aoX2gv+?= =?utf-8?q?GpEjP6THmF4usa/dc8Cq36b504bcQlPWl+UcL7HdxJdgG0ZfHCl82EcsqnrjAcYV1?= =?utf-8?q?G9hKfHIGFylKtVoxU98vS5kCgONsIqFvpsOBfPZLxdE0ValNFRwVEgF+fHHDtZl+Q?= =?utf-8?q?/BNszRV+SCg29D3z+egLlOd395wuMV5ia6fs5k5BUJV5ngdk23MOcVpAEYhK3f7EQ?= =?utf-8?q?bs5pmPokRj3zd7iqe7qZ+Q7uYv6lZcLcIInqYFdaO5LhhweBgI7PQrtFwcQ7882Pm?= =?utf-8?q?FaUruK7B5xutNi9y5gqebzEpvdvBj9GrFjHVYMby/KEZvWAdD0+vw/6Fw2/ggt1DJ?= =?utf-8?q?kbL5Oa0svG/oEzCMMxCkx1sLOpTlGLPvHmNdBAjXI9cNCrByjnQw5tgrKoUee6wAs?= =?utf-8?q?PRoyl0yhA8xV2LfdwnGEtEXAchdmr2U2WFeedqPWYrL08TefwsY1YbiCe1+vSFtUZ?= =?utf-8?q?8JHbApDSsrnUuRmzPK2vf+CDxVeWWCSwX7nPWY5fUF2L9qLuAwjj8iVQWJhIGinFg?= =?utf-8?q?fK1usqqZu5day3f+ZrdTj1IMAswK3m4bflP6b5EcI+0XMCTU/vIgvGma6Cocqiqh5?= =?utf-8?q?fEatDleqTiljpV0r3XxJ02GO9Mv+PPA5rxXBa8pukIoNSy+YUg989j50EiMgKfEFo?= =?utf-8?q?nba6wWM6RWTEfBcs98eA4G7dweMRPBXQjefpyJd6Dzm/h8X33D9SQbU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB6739.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?PTF34IQ7MEgAfeONWA5ezFkxNwXW?= =?utf-8?q?t224MkRzN0JfqN+QC8ZvlAst/T30aMSXgMJ3gmjstayu0Mt02+XjkV4ozFh4a+jvP?= =?utf-8?q?fZyKFUMyF8ZYDI+dD3NEfBNWbgz2mv95mX+y512wlpb+K24RONYBtiKrqmGQlZYwT?= =?utf-8?q?Cj6wmNptw3hBdm+jDFrMdhyYzqE+D74vPEUqphB4YX3rb3WJ9oYw30yHMHIySTl5l?= =?utf-8?q?2pZNgpyScy7IPm146GN0KANPU6wfw2g9xE3H/t+r4sbqH6vispi9I/mWAjhfjKoXf?= =?utf-8?q?1tAwGl7ueiFQdxArG+wxyno2AT+RYpNbQxrVwtIfK1KoPV0fLXGi2zyFg8iX5nDM6?= =?utf-8?q?8qU9y80R/mlWIx1bYUC+TsRVadfm845UM8juFVGTyFyyXwkUarlyZE4PmmKST7uMf?= =?utf-8?q?N+SyqRFZFQG9AfvsNcZffCc85SoGHrs6nz60p7FbR3bZpOV5gteRLMyQOMbxfeq9D?= =?utf-8?q?Jneq5uKUVERUA1mL0giGDc44gHVqg5XlGRCdAIZy2JyZK+2VN0bizEIKTDs1v0lLR?= =?utf-8?q?mdTOkM0HiXRRqRS30j3dGei4TbkuYNREqqffrzSdcrrN1HprZYbjKt3zkassSD4E4?= =?utf-8?q?p+vVyK2uAS0RggwOOZzw/AswKemvcEb+0mB7KA1vNOezGoAO9Pt/FiG+O9y6ERIe0?= =?utf-8?q?yaFKu2os/dbuDvNAJmZVlj3puk9/D+0CXCcuTsBBbQZCRiYRAHqHhV5P7iTPHM52N?= =?utf-8?q?6DiH3BqIpV0BZytjh3OTS3BWPB8On4EyMZlp8hVRFPvOtl+eFiyA+7uFtMgNLepZd?= =?utf-8?q?tWeZxy337eeMMO/ac6TsyEfWuxqSs4cfbxpww3W2OdXBw0nD5HdDSNVY3/F44v2re?= =?utf-8?q?KxgEIDu1opGWqM0MKM3WXxu4snTKApcucnkGOyHV/OOeoMi7cGKodWUAc87XkSsSt?= =?utf-8?q?DZ6iytOM3kVgZR/k1+XBUnnbZMxaM9rLeLTtEqBMcZNmwSWW5+LvQ+kXfa2iP6tce?= =?utf-8?q?n9gBd2B+H/eJ2sEf85Y2YMnfnBbF8gg43qPjDcfT5jkkmBusQdlqkhKScW5iqOxXV?= =?utf-8?q?wKG9vEQETT5jx/MfTDJYGflRzZXmVxzrhPi93TBuNpFVht4Zi23bBY3KfGaofhZ1s?= =?utf-8?q?5wCKpH8BXnOBBRcTyxg8UcupF0F3pPGnujY1KUtY5SvUrQy/PxK5eQd5Y/QFgwNBI?= =?utf-8?q?TVTbGp5L1ryMLWmMbmDERK+KCbpWlDel2/ZIOaQSU1+iIL85hiul4d9hIKdFv7sEf?= =?utf-8?q?IgRvj7vTcJewI9xTJW9jbF0euihmNNeEJV7M2Fx3bmxiyKxL8lVx/I3jniLeu6Mph?= =?utf-8?q?lTmnOoTl54BEW4RyyrCBL83hvRYqdbuJntDeZADOKpqXQAM0fuA/tGxXHj8GoLoQV?= =?utf-8?q?0VpbIHi8FoU/k9i0Pz+xuJuU2LPdkuF8iOtwt3T5/9jQJ+usYXH2jeqw0x13mqTDf?= =?utf-8?q?gegoKm+ZeDzVIIO/WLpZkp385BzwVJ9VWduhsVc6CenRz/WYaetsqPktPt4OiH9Un?= =?utf-8?q?Zmhn/RIfpOIgaoqRA/uxPpkhJ1JJFX4xY3K3lbs3Fb+15LQuwMbF6grNKALy5IZCH?= =?utf-8?q?9a89Go4scNgy?= X-MS-Exchange-CrossTenant-Network-Message-Id: d89e3e88-eafe-4c1d-c85f-08dd7addcd11 X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB6739.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2025 22:52:00.6300 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0jQckqDImRY5pMabHSSwuD9R8CB/bEhYKrCQFvsUvCtaCyJgncQRbC6uB2Hn3BhmW+2YhukkjTIrR6p2YBKgOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6042 X-OriginatorOrg: intel.com cxl_dpa_to_region() finds the region from a tuple. The search involves finding the device endpoint decoder as well. Dynamic capacity extent processing uses the endpoint decoder HPA information to calculate the HPA offset. In addition, well behaved extents should be contained within an endpoint decoder. Return the endpoint decoder found to be used in subsequent DCD code. Reviewed-by: Jonathan Cameron Reviewed-by: Fan Ni Reviewed-by: Dave Jiang Reviewed-by: Li Ming Reviewed-by: Alison Schofield Signed-off-by: Ira Weiny --- Changes: [iweiny: rebase] --- drivers/cxl/core/core.h | 6 ++++-- drivers/cxl/core/mbox.c | 2 +- drivers/cxl/core/memdev.c | 4 ++-- drivers/cxl/core/region.c | 8 +++++++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/cxl/core/core.h b/drivers/cxl/core/core.h index 08facbc2d270..76e23ec03fb4 100644 --- a/drivers/cxl/core/core.h +++ b/drivers/cxl/core/core.h @@ -40,7 +40,8 @@ void cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled); int cxl_region_init(void); void cxl_region_exit(void); int cxl_get_poison_by_endpoint(struct cxl_port *port); -struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa); +struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa, + struct cxl_endpoint_decoder **cxled); u64 cxl_dpa_to_hpa(struct cxl_region *cxlr, const struct cxl_memdev *cxlmd, u64 dpa); @@ -51,7 +52,8 @@ static inline u64 cxl_dpa_to_hpa(struct cxl_region *cxlr, return ULLONG_MAX; } static inline -struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa) +struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa, + struct cxl_endpoint_decoder **cxled) { return NULL; } diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c index c589d8a330bb..b3dd119d166a 100644 --- a/drivers/cxl/core/mbox.c +++ b/drivers/cxl/core/mbox.c @@ -957,7 +957,7 @@ void cxl_event_trace_record(const struct cxl_memdev *cxlmd, guard(rwsem_read)(&cxl_dpa_rwsem); dpa = le64_to_cpu(evt->media_hdr.phys_addr) & CXL_DPA_MASK; - cxlr = cxl_dpa_to_region(cxlmd, dpa); + cxlr = cxl_dpa_to_region(cxlmd, dpa, NULL); if (cxlr) { u64 cache_size = cxlr->params.cache_size; diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c index 063a14c1973a..d3555d1f13c6 100644 --- a/drivers/cxl/core/memdev.c +++ b/drivers/cxl/core/memdev.c @@ -320,7 +320,7 @@ int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa) if (rc) goto out; - cxlr = cxl_dpa_to_region(cxlmd, dpa); + cxlr = cxl_dpa_to_region(cxlmd, dpa, NULL); if (cxlr) dev_warn_once(cxl_mbox->host, "poison inject dpa:%#llx region: %s\n", dpa, @@ -384,7 +384,7 @@ int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa) if (rc) goto out; - cxlr = cxl_dpa_to_region(cxlmd, dpa); + cxlr = cxl_dpa_to_region(cxlmd, dpa, NULL); if (cxlr) dev_warn_once(cxl_mbox->host, "poison clear dpa:%#llx region: %s\n", dpa, diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 716d33140ee8..9c573e8d6ed7 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -2839,6 +2839,7 @@ int cxl_get_poison_by_endpoint(struct cxl_port *port) struct cxl_dpa_to_region_context { struct cxl_region *cxlr; u64 dpa; + struct cxl_endpoint_decoder *cxled; }; static int __cxl_dpa_to_region(struct device *dev, void *arg) @@ -2872,11 +2873,13 @@ static int __cxl_dpa_to_region(struct device *dev, void *arg) dev_name(dev)); ctx->cxlr = cxlr; + ctx->cxled = cxled; return 1; } -struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa) +struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa, + struct cxl_endpoint_decoder **cxled) { struct cxl_dpa_to_region_context ctx; struct cxl_port *port; @@ -2888,6 +2891,9 @@ struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa) if (port && is_cxl_endpoint(port) && cxl_num_decoders_committed(port)) device_for_each_child(&port->dev, &ctx, __cxl_dpa_to_region); + if (cxled) + *cxled = ctx.cxled; + return ctx.cxlr; }