diff options
author | Dave Jiang <dave.jiang@intel.com> | 2023-05-19 02:38:20 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-30 16:17:27 +0300 |
commit | 84b54b5e2d89d22d5aaa0bfd6e03425678c85f71 (patch) | |
tree | 3cd5cdfd2303b03d8ca1da706402c352f8c558fd /tools | |
parent | 9eb6f0935415b8174883fe0c59a5cb9c4e422d48 (diff) | |
download | linux-84b54b5e2d89d22d5aaa0bfd6e03425678c85f71.tar.xz |
cxl: Move cxl_await_media_ready() to before capacity info retrieval
commit e764f12208b99ac7892c4e3f6bf88d71ca71036f upstream.
Move cxl_await_media_ready() to cxl_pci probe before driver starts issuing
IDENTIFY and retrieving memory device information to ensure that the
device is ready to provide the information. Allow cxl_pci_probe() to succeed
even if media is not ready. Cache the media failure in cxlds and don't ask
the device for any media information.
The rationale for proceeding in the !media_ready case is to allow for
mailbox operations to interrogate and/or remediate the device. After
media is repaired then rebinding the cxl_pci driver is expected to
restart the capacity scan.
Suggested-by: Dan Williams <dan.j.williams@intel.com>
Fixes: b39cb1052a5c ("cxl/mem: Register CXL memX devices")
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/168445310026.3251520.8124296540679268206.stgit@djiang5-mobl3
[djbw: fixup cxl_test]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/cxl/test/mem.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/testing/cxl/test/mem.c b/tools/testing/cxl/test/mem.c index 9263b04d35f7..2c153cdeb420 100644 --- a/tools/testing/cxl/test/mem.c +++ b/tools/testing/cxl/test/mem.c @@ -1010,6 +1010,7 @@ static int cxl_mock_mem_probe(struct platform_device *pdev) if (rc) return rc; + cxlds->media_ready = true; rc = cxl_dev_state_identify(cxlds); if (rc) return rc; |