From nobody Tue Apr 7 09:22:48 2026 Received: from sender4-pp-o94.zoho.com (sender4-pp-o94.zoho.com [136.143.188.94]) (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 70FB2274B42; Sat, 14 Mar 2026 07:09:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.94 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472177; cv=pass; b=VuxZJBTJ6mh/N2JqMzEL+Xk01EimTq+SJ1A8mqmLGJiwIsj/khBJ4dNErWA30lRuO0PEBlfD7e4VZto5IpB0eloQafW0zCV2g7WoLsy4PdzdkzsPbqBbO6aZ9ZbJZyV3keF/jdWp/3aY37L9l/xc+jzkZoDlgVeQH4v4C3FALWY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472177; c=relaxed/simple; bh=jld8z8EaEZk/PIs/XnM+XbbTTLlhPZ/vTlBzy91LzBY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QSLHrKTIuRTUso8R3FPX5W9CHBtLZYasmK/VcxYnM43FAu+OjUInWcKlGfYmz8UHcwUXrzwh5VNz5PnVVMv86JWNa4BDpEXlc40SP2slcIoLmGGGVRtAhiostxsfDGR0k7odudE/hR3bIyGxW32ZKr0e9DT3ov2nZQXw6VGZJAo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com; spf=pass smtp.mailfrom=zohomail.com; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b=Knb+1cVs; arc=pass smtp.client-ip=136.143.188.94 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zohomail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b="Knb+1cVs" ARC-Seal: i=1; a=rsa-sha256; t=1773472017; cv=none; d=zohomail.com; s=zohoarc; b=LZQtE9FuGhdLXj2onXBFs4/H0i5+//VyB8yKYXVOfqz8gXXit6RXKuKeLDX+6qElc4cXC4kvSl9cj6clVqWtLrklioL15qdR9MxazGzZJ21FLshyUNqtxSW1dU5QcSh0j/GUfnMbfjpeV7yyWc8id17u1gD2HM7WkjXcZ30Qfi0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773472017; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=he0hmlYadl7skuOe8IBrpjgtZApalDgIp3pwb0J17x4=; b=GSCbjNfEvLepLDQQIt/ShKo75Uqu6vYDcbl4UxpngJOjNbgompI5xVmT8TkrK7FZaV9SznZbasvy4WHUas5O5M/qtsn3Lgc4GjEmwu/0rRETn452txWoaXLJ73QNWC2xzMvr12m7RbJei83Ln5okPc2nrWCfC18rsvW2QSy3sxU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zohomail.com; spf=pass smtp.mailfrom=ming.li@zohomail.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1773472017; s=zm2022; d=zohomail.com; i=ming.li@zohomail.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Feedback-ID:Reply-To; bh=he0hmlYadl7skuOe8IBrpjgtZApalDgIp3pwb0J17x4=; b=Knb+1cVsyJRdZrwTkDM3eTNpH53SQhEJRiwK0Lbpmi51WgPIG8qXPVzmhxFDekym 5XK+MBIjeyf+yVongy1ZgBQlkLVV1zZOKVAWdFX5QX7CM/SwFMI/eNpULI9y/HmAaYX pSrMHWcaCDSuAV3y7E6tWT76k+V3DKIZEcns3NqQ= Received: by mx.zohomail.com with SMTPS id 1773472014637557.8600594017072; Sat, 14 Mar 2026 00:06:54 -0700 (PDT) From: Li Ming Date: Sat, 14 Mar 2026 15:06:30 +0800 Subject: [PATCH v2 1/4] driver core: Add conditional guard support for device_lock() 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 Message-Id: <20260314-fix_access_endpoint_without_drv_check-v2-1-4c09edf2e1db@zohomail.com> References: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> In-Reply-To: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Bjorn Helgaas , Ben Cheatham Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, Jonathan Cameron , Li Ming X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773472001; l=882; i=ming.li@zohomail.com; s=20260210; h=from:subject:message-id; bh=jld8z8EaEZk/PIs/XnM+XbbTTLlhPZ/vTlBzy91LzBY=; b=vVy7NfYJLeQUWAB3/bMNKQZGhZP6WS+ae75EP6TH3St33twdxqqu2I1TKSfC3cY7idkoUqKYh gLJ+8DJr0VWCRzdZ1q6MQIok9lrwpxm2CofKFi1GtqhE+S8RZV/mqUV X-Developer-Key: i=ming.li@zohomail.com; a=ed25519; pk=JfhrdHjyYJMXt47Hy8d/fsqZuhGPD4Z3whV5lTfVvhE= Feedback-ID: rr08011228d14fb1a2cc3d433601dca7ea00001a0613638ed52bb162cd0aeea0a9577678f5e63cf4a910d9f347:zu080112271ac650ea53c8c48b2f2e17ba0000f29f8472379426017f29730d6cb568e26b158f72af67528c9a:rf0801122d2013fd126a9024ca21b9143c0000a5e824e25431c819a524b27767917688fff2d259d1b8b89c043c87f38a457a:ZohoMail X-ZohoMailClient: External Introduce conditional guard version of device_lock() for scenarios that require conditional device lock holding. Suggested-by: Dan Williams Reviewed-by: Dan Williams Acked-by: Greg Kroah-Hartman Signed-off-by: Li Ming --- include/linux/device.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/device.h b/include/linux/device.h index 0be95294b6e6..4fafee80524b 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -911,6 +911,7 @@ static inline void device_unlock(struct device *dev) } =20 DEFINE_GUARD(device, struct device *, device_lock(_T), device_unlock(_T)) +DEFINE_GUARD_COND(device, _intr, device_lock_interruptible(_T), _RET =3D= =3D 0) =20 static inline void device_lock_assert(struct device *dev) { --=20 2.43.0 From nobody Tue Apr 7 09:22:48 2026 Received: from sender4-pp-o94.zoho.com (sender4-pp-o94.zoho.com [136.143.188.94]) (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 1AC0A1B85F8; Sat, 14 Mar 2026 07:09:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.94 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472200; cv=pass; b=gnfV/3oxKQfqFoHWDSEqsxJjfRtos2asM9bKGh0Ec2V61sGI7qZPYPqVVHyUGZqJ1atG7z9Hbko6Sgks7zR0sOJvc8+PJ8UV48X+2wjy9gHVu6T/+tBe35VCqe37sXKBT4Z4H2YMK8oIqVpGgA5uyzK3j80vHsQtkdzXjyvFK90= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472200; c=relaxed/simple; bh=DB9HqXhMpvRgERuMMJHgiOhLxgOij9oYtMtduU3akXg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EvUn+FuIrlw2PfWyWmj37amVcvzXom0tpH+g+1qESoEbryzkORBRwCrNVAQYnHcsazYwaLHSzStST4U4818y2ri7yyuOk+RAbH4Fi0W5kO3x0gb6YXRdzQAbMU3aGicEJWQmap5jUVy72xiZFXju7qAsx/qhac0iMJ34s+KCioM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com; spf=pass smtp.mailfrom=zohomail.com; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b=bmTBiN0P; arc=pass smtp.client-ip=136.143.188.94 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zohomail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b="bmTBiN0P" ARC-Seal: i=1; a=rsa-sha256; t=1773472021; cv=none; d=zohomail.com; s=zohoarc; b=axkE0fNzCrJf5Cvl9+BQSfZXzodz2MBbFsP3Ofc2AgOA5Gt1eM1uMNAfxsAwuTto8bVLu2PfD/MhSciX26Ymz76FqhJMjw8SZ1g8izT342Gr89Eg3LIkufqiDZUByNokY9Wg99+11f1JjYeLmycNuY3uCma2ye1TPlTYQxkhq38= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773472021; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=QmJl2oe8AGR2KIYRqSQqLtmGMi/TBXCWDyU7deHFt6I=; b=mEeEFjvp5qPmN03MnSpCYM6D/OEdcYly0DfzThAjOP3j5U8fnnnXZIYXaHSo6I+uBweIdUuZ1XFseSCGKWh4arBpsoqn1/Hpy1KJTXuNLMUqNp2aj09cG0e+vByfQsbmWjKsyafZCZuue4XRlSMdBtBSt2Sfk4vTsJ58PL9t+BM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zohomail.com; spf=pass smtp.mailfrom=ming.li@zohomail.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1773472021; s=zm2022; d=zohomail.com; i=ming.li@zohomail.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Feedback-ID:Reply-To; bh=QmJl2oe8AGR2KIYRqSQqLtmGMi/TBXCWDyU7deHFt6I=; b=bmTBiN0P9dKDn9VQRSZO1ui7TOWlhEnx2mC9VIyUJLlYST+y63u17cYkduN/7KyO jHmeP/jRtVloP3UiMLJUD7f/o4rBqk+ASWSA3ubRx2yBRPod48tWBZE8sfveGBge0Rt tmAirvhxV42kbfHMjKGzc0RpDxFbzvS38ClaAiwU= Received: by mx.zohomail.com with SMTPS id 177347201995764.17360339363813; Sat, 14 Mar 2026 00:06:59 -0700 (PDT) From: Li Ming Date: Sat, 14 Mar 2026 15:06:31 +0800 Subject: [PATCH v2 2/4] cxl/memdev: Hold memdev lock during memdev poison injection/clear 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 Message-Id: <20260314-fix_access_endpoint_without_drv_check-v2-2-4c09edf2e1db@zohomail.com> References: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> In-Reply-To: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Bjorn Helgaas , Ben Cheatham Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, Jonathan Cameron , Li Ming X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773472001; l=1615; i=ming.li@zohomail.com; s=20260210; h=from:subject:message-id; bh=DB9HqXhMpvRgERuMMJHgiOhLxgOij9oYtMtduU3akXg=; b=afR/AegZjhlWuMx+r87tunQlkf8AHKkPZfsqnHdwUZCL17UgZGV8fJrXwy027WLWnmNl6k5+G /O2lAUCgK7VCaaqbs/XEf+JwlzL2DBtZCpav5cTg/axc7eYAg61WrrQ X-Developer-Key: i=ming.li@zohomail.com; a=ed25519; pk=JfhrdHjyYJMXt47Hy8d/fsqZuhGPD4Z3whV5lTfVvhE= Feedback-ID: rr080112289099a47d885d93aa2e3e17e00000d297e5df5e53ccbd21f13b794e8d82d090799ccd019f4a589328:zu080112278e36bcd1d7e2f75babbd455d0000b8daa23f752d1a73c075abf414d840d063a0daa5668d189b8a:rf0801122d3848e719f319e6efbe386ba900003b572e0a8020a8afcd1161f0a383752999c450f6e2cad084079f3bcb53cf83:ZohoMail X-ZohoMailClient: External CXL memdev poison injection/clearing debugfs interfaces are visible before the CXL memdev endpoint initialization, If user accesses the interfaces before cxlmd->endpoint updated, it is possible to access an invalid endpoint in cxl_dpa_to_region(). Hold CXL memdev lock at the beginning of the interfaces, this blocks the interfaces until CXL memdev probing completed. The following patch will check the given endpoint validity in cxl_dpa_to_region(). Suggested-by: Dan Williams Reviewed-by: Dave Jiang Reviewed-by: Alison Schofield Signed-off-by: Li Ming --- drivers/cxl/mem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/cxl/mem.c b/drivers/cxl/mem.c index fcffe24dcb42..ab88eaa31d1d 100644 --- a/drivers/cxl/mem.c +++ b/drivers/cxl/mem.c @@ -48,6 +48,11 @@ static int cxl_mem_dpa_show(struct seq_file *file, void = *data) static int cxl_debugfs_poison_inject(void *data, u64 dpa) { struct cxl_memdev *cxlmd =3D data; + int rc; + + ACQUIRE(device_intr, devlock)(&cxlmd->dev); + if ((rc =3D ACQUIRE_ERR(device_intr, &devlock))) + return rc; =20 return cxl_inject_poison(cxlmd, dpa); } @@ -58,6 +63,11 @@ DEFINE_DEBUGFS_ATTRIBUTE(cxl_poison_inject_fops, NULL, static int cxl_debugfs_poison_clear(void *data, u64 dpa) { struct cxl_memdev *cxlmd =3D data; + int rc; + + ACQUIRE(device_intr, devlock)(&cxlmd->dev); + if ((rc =3D ACQUIRE_ERR(device_intr, &devlock))) + return rc; =20 return cxl_clear_poison(cxlmd, dpa); } --=20 2.43.0 From nobody Tue Apr 7 09:22:48 2026 Received: from sender4-pp-o94.zoho.com (sender4-pp-o94.zoho.com [136.143.188.94]) (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 1E29627AC4C; Sat, 14 Mar 2026 07:10:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.94 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472221; cv=pass; b=bxNwtauOdoO/sPV35B5vcDSm7K//hVpn0Ux2c3wDiJRglbISK0e816sZz9N4W9yvPtMQ4QIjignHaUVp1nKGjgYPA7rwQELQ/7HZ4/nAIEPma4x2NQoDf7XyQKtIznzttf94SZ4f+m0m/nJqTMiUlSIxzax52gMo0U0LjTG9g50= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472221; c=relaxed/simple; bh=Z9AoVa/h8h7mEpKevRNaNyayhAMnLDu5CA/Xf5omY1I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e58ixCubxBzes6yUX5J6INPjgDhodFkROhQFDaohKVsXHWSuEUQMd/xKZtQN7e5hdJ+8yhLy2BT6W6QoNZnFYRsPv/8ORsRgyiFA1WDoyjjEYW5WBRhdwQSRgnGaADwb+Cum5cUZ4m5d3jt+GhSS5ff74gpqTFb7ZCadcis+a0Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com; spf=pass smtp.mailfrom=zohomail.com; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b=WZiE6n44; arc=pass smtp.client-ip=136.143.188.94 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zohomail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b="WZiE6n44" ARC-Seal: i=1; a=rsa-sha256; t=1773472027; cv=none; d=zohomail.com; s=zohoarc; b=HoaZ/KfRJDwLuiELA96LmHKVElyovpd6udQTgn2ui+v5ZJ1d8L1l1A14+6bHigFrFrPhBTn9DNzPF9QSMgcCVy+5YYS0cc2pHUwORpxPzvzOlacbvIC/6enUZ9T5BlMae8bPUWoy7D0TudF/seZvPQT18QGvsPfBZbl1B9VdZ1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773472027; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=HMKYJ7GlGpyQ2UFGTyxInLDKVN0gYwiyclPrjq+4Hjo=; b=jF25QPZ1nTWJnNaWOHHNDYh85JaOwl3atRkgrZtZfenfZ9QCMUN85WgfC8RUc5xHJ0+umxBygoxiZOE8U60yRJkn/1K2W2fiqAc6pL9SNbZlQug8ih+RAiENoWd5ZkiadukGXPsjAZXS47T7TUbpPNwgCAxah4rUnOAj9m3UYr0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zohomail.com; spf=pass smtp.mailfrom=ming.li@zohomail.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1773472027; s=zm2022; d=zohomail.com; i=ming.li@zohomail.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Feedback-ID:Reply-To; bh=HMKYJ7GlGpyQ2UFGTyxInLDKVN0gYwiyclPrjq+4Hjo=; b=WZiE6n44dQiops4nGb0UHm9wEGrWaGmrgT0xaHRJMes3VcT0g1H2aqDG+gU8CeWS SMEGEn1YGhxjDdxuzLpy+b8Yk9fmsn63uYAIzdB8TYF0v0InoInvWZRdzqhTlFYxKOm AWrXacFZOu5mx5u2WiMR7s7BnFCKF0vBWhev0rWc= Received: by mx.zohomail.com with SMTPS id 177347202489093.21518536480016; Sat, 14 Mar 2026 00:07:04 -0700 (PDT) From: Li Ming Date: Sat, 14 Mar 2026 15:06:32 +0800 Subject: [PATCH v2 3/4] cxl/pci: Hold memdev lock in cxl_event_trace_record() 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 Message-Id: <20260314-fix_access_endpoint_without_drv_check-v2-3-4c09edf2e1db@zohomail.com> References: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> In-Reply-To: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Bjorn Helgaas , Ben Cheatham Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, Jonathan Cameron , Li Ming X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773472001; l=3729; i=ming.li@zohomail.com; s=20260210; h=from:subject:message-id; bh=Z9AoVa/h8h7mEpKevRNaNyayhAMnLDu5CA/Xf5omY1I=; b=hM8Ces57Juk2/7XCJf7PLF1+uME6Opoe2ANGZ/OGlR0IAN7xN+X3G7k4U12Mll9tCXdS/yw+o uPp3XCoSY5ADqStKyPGhq8CSQ19Bzm00qwc2aBIGtp97+Taibj0cpv0 X-Developer-Key: i=ming.li@zohomail.com; a=ed25519; pk=JfhrdHjyYJMXt47Hy8d/fsqZuhGPD4Z3whV5lTfVvhE= Feedback-ID: rr08011228404d7638850ef7de5a9891c20000585065127f78d3c1ac1c76ed1c3c1c9ffc9d25c37a31e0ba49b4:zu08011227b4eb7c5ad8008c988a37193100004963bbeff4891357b8170713d808c1689b1de58a10569b51da:rf0801122d49e0be2fbe1635d2caab17ed00007cc5e8e904e54f6aca65949aab16ed4fb0d230c2fa39c455dd0a977af7bbcc:ZohoMail X-ZohoMailClient: External cxl_event_config() invokes cxl_mem_get_event_record() to get remain event logs from CXL device during cxl_pci_probe(). If CXL memdev probing failed before that, it is possible to access an invalid endpoint. So adding a cxlmd->driver binding status checking inside cxl_dpa_to_region() to ensure the corresponding endpoint is valid. Besides, cxl_event_trace_record() needs to hold memdev lock to invoke cxl_dpa_to_region() to ensure the memdev probing completed. It is possible that cxl_event_trace_record() is invoked during the CXL memdev probing, especially user or cxl_acpi triggers CXL memdev re-probing. Suggested-by: Dan Williams Reviewed-by: Dan Williams Reviewed-by: Dave Jiang Signed-off-by: Li Ming --- drivers/cxl/core/mbox.c | 5 +++-- drivers/cxl/core/region.c | 8 +++++--- drivers/cxl/cxlmem.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c index e7a6452bf544..3f34bbabf4d3 100644 --- a/drivers/cxl/core/mbox.c +++ b/drivers/cxl/core/mbox.c @@ -893,7 +893,7 @@ int cxl_enumerate_cmds(struct cxl_memdev_state *mds) } EXPORT_SYMBOL_NS_GPL(cxl_enumerate_cmds, "CXL"); =20 -void cxl_event_trace_record(const struct cxl_memdev *cxlmd, +void cxl_event_trace_record(struct cxl_memdev *cxlmd, enum cxl_event_log_type type, enum cxl_event_type event_type, const uuid_t *uuid, union cxl_event *evt) @@ -920,6 +920,7 @@ void cxl_event_trace_record(const struct cxl_memdev *cx= lmd, * translations. Take topology mutation locks and lookup * { HPA, REGION } from { DPA, MEMDEV } in the event record. */ + guard(device)(&cxlmd->dev); guard(rwsem_read)(&cxl_rwsem.region); guard(rwsem_read)(&cxl_rwsem.dpa); =20 @@ -968,7 +969,7 @@ void cxl_event_trace_record(const struct cxl_memdev *cx= lmd, } EXPORT_SYMBOL_NS_GPL(cxl_event_trace_record, "CXL"); =20 -static void __cxl_event_trace_record(const struct cxl_memdev *cxlmd, +static void __cxl_event_trace_record(struct cxl_memdev *cxlmd, enum cxl_event_log_type type, struct cxl_event_record_raw *record) { diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 42874948b589..840d52a52c4e 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -2950,13 +2950,15 @@ static int __cxl_dpa_to_region(struct device *dev, = void *arg) struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 d= pa) { struct cxl_dpa_to_region_context ctx; - struct cxl_port *port; + struct cxl_port *port =3D cxlmd->endpoint; + + if (!cxlmd->dev.driver) + return NULL; =20 ctx =3D (struct cxl_dpa_to_region_context) { .dpa =3D dpa, }; - port =3D cxlmd->endpoint; - if (port && is_cxl_endpoint(port) && cxl_num_decoders_committed(port)) + if (cxl_num_decoders_committed(port)) device_for_each_child(&port->dev, &ctx, __cxl_dpa_to_region); =20 return ctx.cxlr; diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h index e21d744d639b..7a34a19c02c8 100644 --- a/drivers/cxl/cxlmem.h +++ b/drivers/cxl/cxlmem.h @@ -864,7 +864,7 @@ void set_exclusive_cxl_commands(struct cxl_memdev_state= *mds, void clear_exclusive_cxl_commands(struct cxl_memdev_state *mds, unsigned long *cmds); void cxl_mem_get_event_records(struct cxl_memdev_state *mds, u32 status); -void cxl_event_trace_record(const struct cxl_memdev *cxlmd, +void cxl_event_trace_record(struct cxl_memdev *cxlmd, enum cxl_event_log_type type, enum cxl_event_type event_type, const uuid_t *uuid, union cxl_event *evt); --=20 2.43.0 From nobody Tue Apr 7 09:22:48 2026 Received: from sender4-pp-o94.zoho.com (sender4-pp-o94.zoho.com [136.143.188.94]) (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 549E4248F47; Sat, 14 Mar 2026 07:10:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.94 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472242; cv=pass; b=Ey8i66xP4Gypwf4QVPnAfDtf9wKLVoyxDz1Grw0FN5MnlIvL7HwlNe0gBKapq9pPz+ch5zB/v+QTdpupoGDZkFbb8R1jgjcXVwto1SWOGE5SDzJD8y2JguFhpN0lZ+AI5U57qrhuxrBff98EEOg2KLRaIlUuq4pz+5Dcm1DGl6I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773472242; c=relaxed/simple; bh=NW7dQqdAptqS0gVRYu4H5M0FqfuCUNK8ccC5vmFcZ9U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GXgdV7lzL+Wr3g0xsRjWqiHeEwjyMrxHBhnhugNm6fSVFgCGe/J1sSGL/+PB90SFJf1Nj7shX1YfPZCxPQxC+HTtnfc8LzNJfwC04NycmjwtEN/HJGz/pSM8D8yZX/mSUsYejbsvXpogucqjCbSxCVKRB7sInBobiTXwgjfXz2k= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com; spf=pass smtp.mailfrom=zohomail.com; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b=fNqu6sWY; arc=pass smtp.client-ip=136.143.188.94 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=zohomail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zohomail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=zohomail.com header.i=ming.li@zohomail.com header.b="fNqu6sWY" ARC-Seal: i=1; a=rsa-sha256; t=1773472033; cv=none; d=zohomail.com; s=zohoarc; b=bxTgp+U1cYUzCxsoV+5LFnas+/WRMWXbB/WwXbeUKJP2Wumu5PCENJyfsw64daX1j/Usuw2APk+0zaUWj6vHMUhmhgEJkH6INnTHobvN91ukbBl4PVGCfi+PLZ9Kyj6fdhaOdNvAlS7w092rKS7psvQVlE+ClR7mAo7OWkKlRgE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773472033; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=CqKW/toPt1wNfoYaxL/9v536eeycxjvx8DUPN+FlQ/g=; b=YseOGEqEghJh1UoDApXMv3fUL9SRKq6Api00eh8hN3OrLvK896GpFvAJ4FYvlgkGHqyNXRWgecSHnZ7cqu2caqTfrfAGV+XcnX5Gc4fw5+0hFf6nhJ4bSYznZ+tTWTQMFLVjfNxpu176mxovSiH1/wQIwckCjYsm0GEPm11yOuk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zohomail.com; spf=pass smtp.mailfrom=ming.li@zohomail.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1773472033; s=zm2022; d=zohomail.com; i=ming.li@zohomail.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Feedback-ID:Reply-To; bh=CqKW/toPt1wNfoYaxL/9v536eeycxjvx8DUPN+FlQ/g=; b=fNqu6sWYc1OHL80hRDi1o1ryYhxcUd0Jakw4C1dkgTe8ZaZO+7qktA6yofkuC113 3yTrxOvBGs83pxueYSE1ayKhklp5a9mKwVBMI/6Y3j6HC1/V3PJXaLrIdza1hGD2erP fuw+mZEIwkpc+LFuWNPyHvZuGvg8kGsDg3zS2As4= Received: by mx.zohomail.com with SMTPS id 1773472030594510.5995389105003; Sat, 14 Mar 2026 00:07:10 -0700 (PDT) From: Li Ming Date: Sat, 14 Mar 2026 15:06:33 +0800 Subject: [PATCH v2 4/4] cxl/pci: Check memdev driver binding status in cxl_reset_done() 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 Message-Id: <20260314-fix_access_endpoint_without_drv_check-v2-4-4c09edf2e1db@zohomail.com> References: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> In-Reply-To: <20260314-fix_access_endpoint_without_drv_check-v2-0-4c09edf2e1db@zohomail.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Bjorn Helgaas , Ben Cheatham Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, Jonathan Cameron , Li Ming X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773472001; l=1337; i=ming.li@zohomail.com; s=20260210; h=from:subject:message-id; bh=NW7dQqdAptqS0gVRYu4H5M0FqfuCUNK8ccC5vmFcZ9U=; b=ww9ZpRC1Mbgm1Of8nO7h3Z5EDQNImBh9q8OyOJEuLyyqjDur8UhGp7z4ZiKG6ryfu0QHPKIVf b8FpBAYxWq3BHmMcUsWkwetMLNeDhILcrFkLGq+9Ms0c6M83ltCvJai X-Developer-Key: i=ming.li@zohomail.com; a=ed25519; pk=JfhrdHjyYJMXt47Hy8d/fsqZuhGPD4Z3whV5lTfVvhE= Feedback-ID: rr080112282abbe5bde50ad67bfa29fdcf000024033e84f2418389e844768c1b14a83f87c6eea2aef437987e23:zu08011227c1daf4087b0bdca627c5885500001d81fbf71559b8901613e13761d8e3176369fda8d089b27077:rf0801122dcf13f46313b3b6a1ddd8aa910000db282683c3f9a0e26083c6552a11a5e96d07d41334d09415422f9660bff90a:ZohoMail X-ZohoMailClient: External cxl_reset_done() accesses the endpoint of the corresponding CXL memdev without endpoint validity checking. By default, cxlmd->endpoint is initialized to -ENXIO, if cxl_reset_done() is triggered after the corresponding CXL memdev probing failed, this results in access to an invalid endpoint. CXL subsystem can always check CXL memdev driver binding status to confirm its endpoint validity. So adding the CXL memdev driver checking inside cxl_reset_done() to avoid accessing an invalid endpoint. Fixes: 934edcd436dc ("cxl: Add post-reset warning if reset results in loss = of previously committed HDM decoders") Reviewed-by: Dan Williams Reviewed-by: Dave Jiang Signed-off-by: Li Ming --- drivers/cxl/pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c index fbb300a01830..a5922116db2a 100644 --- a/drivers/cxl/pci.c +++ b/drivers/cxl/pci.c @@ -1043,6 +1043,9 @@ static void cxl_reset_done(struct pci_dev *pdev) * that no longer exists. */ guard(device)(&cxlmd->dev); + if (!cxlmd->dev.driver) + return; + if (cxlmd->endpoint && cxl_endpoint_decoder_reset_detected(cxlmd->endpoint)) { dev_crit(dev, "SBR happened without memory regions removal.\n"); --=20 2.43.0