[PATCH v12 08/12] PCI/CXL: Reject CXL Reset on multifunction devices
From: Srirangan Madhavan
Date: Thu Sep 10 2026 - 03:16:36 EST
CXL Reset can be exposed as a PCI function reset method only when the
reset is function-scoped. PCI reset-method probing runs during
enumeration, so walking sibling functions there can race with functions
that have not been added to the bus yet.
Reject multifunction devices and devices with enabled VFs instead of
trying to infer reset scope from sibling state. Check both conditions on
each invocation because VF enablement can change after reset-method
probing. Systems that can prove a multifunction device has
function-scoped CXL Reset can be enabled later.
Signed-off-by: Srirangan Madhavan <smadhavan@xxxxxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
---
drivers/cxl/core/resource.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/cxl/core/resource.c b/drivers/cxl/core/resource.c
index 7e4eee3e50c0..ac0284fec51e 100644
--- a/drivers/cxl/core/resource.c
+++ b/drivers/cxl/core/resource.c
@@ -979,6 +979,9 @@ int cxl_reset_function(struct pci_dev *pdev, bool probe)
if (dvsec < 0)
return dvsec;
+ if (pdev->multifunction || pci_num_vf(pdev))
+ return -ENOTTY;
+
if (probe)
return 0;
--
2.43.0