@@ -707,14 +707,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;
-
rc = cxl_alloc_irq_vectors(pdev);
if (rc)
return rc;
@@ -175,6 +175,14 @@ static int cxl_endpoint_port_probe(struct cxl_port *port)
return rc;
}
+ 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, &info);
if (rc)
return rc;
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. Fixes: 5e2411ae8071 ("cxl/memdev: Change cxl_mem to a more descriptive name") 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(-)