@@ -484,14 +484,6 @@ static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (rc)
return rc;
- rc = cxl_dev_state_identify(cxlds);
- if (rc)
- return rc;
-
- rc = cxl_mem_create_range_info(cxlds);
- if (rc)
- return rc;
-
cxlmd = devm_cxl_add_memdev(cxlds);
if (IS_ERR(cxlmd))
return PTR_ERR(cxlmd);
@@ -127,6 +127,14 @@ static int cxl_port_probe(struct device *dev)
if (rc)
dev_dbg(dev, "Failed to do QoS calculations\n");
}
+
+ rc = cxl_dev_state_identify(cxlds);
+ if (rc)
+ return rc;
+
+ rc = cxl_mem_create_range_info(cxlds);
+ if (rc)
+ return rc;
}
rc = devm_cxl_enumerate_decoders(cxlhdm);
Move the enumeration of device capacity to cxl_port_probe() from cxl_pci_probe(). The size and capacity information should be read after cxl_await_media_ready() so the data is valid. Signed-off-by: Dave Jiang <dave.jiang@intel.com> --- drivers/cxl/pci.c | 8 -------- drivers/cxl/port.c | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-)