Linux CXL
 help / color / mirror / Atom feed
* [PATCH] cxl/port: Unmask AER internal errors for VH endpoints
@ 2026-10-30  9:59 Richard Cheng
  2026-10-30 10:16 ` sashiko-bot
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Richard Cheng @ 2026-10-30  9:59 UTC (permalink / raw)
  To: dave, jic23, dave.jiang, alison.schofield, vishal.l.verma
  Cc: iweiny, ming.li, icheng, linux-cxl, linux-kernel, kaihengf, kobak,
	newtonl, kristinc

CXL protocol errors are reported through PCIe AER internal errors.
Unmasking the endpoint's CXL RAS register alone leaves the AER internal
errors masked, thus the notification can't reach the Root Port.

Unmask AER internal errors during native endpoint RAS setup for VH
devices. Allow cxl_port to use pci_aer_unmask_internal_errors() through
its module-restricted export.

Verified with QEMU mem-data-ecc injection: the Root Port AER interrupt
fires, the CXL correctable-error trace is emitted, and the endpoint's
CorrIntErr counter increments.

Signed-off-by: Richard Cheng <icheng@nvidia.com>
---
 drivers/cxl/port.c     | 7 +++++++
 drivers/pci/pcie/aer.c | 3 ++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/cxl/port.c b/drivers/cxl/port.c
index c48216e5078f..c94a310061b0 100644
--- a/drivers/cxl/port.c
+++ b/drivers/cxl/port.c
@@ -121,6 +121,13 @@ static int cxl_ras_unmask(struct cxl_port *port)
 			orig_val, val);
 	}
 
+	/*
+	 * RCH errors are reported by the RCEC. VH endpoints report CXL
+	 * protocol errors as PCIe AER internal errors.
+	 */
+	if (!is_cxl_restricted(pdev))
+		pci_aer_unmask_internal_errors(pdev);
+
 	return 0;
 }
 
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index db4f607f889c..94eca22422b7 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -1287,7 +1287,8 @@ void pci_aer_unmask_internal_errors(struct pci_dev *dev)
  * Internal errors are too device-specific to enable generally, however for CXL
  * their behavior is standardized for conveying CXL protocol errors.
  */
-EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors, "cxl_core");
+EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors,
+			  "cxl_core,cxl_port");
 
 #ifdef CONFIG_CXL_RAS
 bool is_aer_internal_error(struct aer_err_info *info)

base-commit: f0c48323b0402349530abc60ea908b5f5f40c395
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-30 19:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-30  9:59 [PATCH] cxl/port: Unmask AER internal errors for VH endpoints Richard Cheng
2026-10-30 10:16 ` sashiko-bot
2026-10-30 18:28 ` Bowman, Terry
2026-10-30 19:11 ` Li Ming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox