linux/tools/testing/cxl
Li Ming d90f236f8b cxl/test: Update mock dev array before calling platform_device_add()
CXL test environment hits the following error sometimes.

 cxl_mem mem9: endpoint7 failed probe

All mock memdevs are platform firmware devices added by cxl_test module,
and cxl_test module also provides a platform device driver for them to
create a memdev device to CXL subsystem. cxl_test module uses
cxl_rcd/mem_single/mem arrays to store different types of mock memdevs.
CXL drivers calls registered mock functions for a mock memdev by
checking if a given memdev is in these arrays.

When cxl_test module adds these mock memdevs, it always calls
platform_device_add() before adding them to a suitable mock memdev
array. However, there is a small window where CXL drivers calls mock
function for a added memdev before it added to a mock memdev array. In
above case, cxl endpoint driver considers a added memdev was not a mock
memdev, then calling devm_cxl_endpoint_decoders_setup() for it rather
than mock_endpoint_decoders_setup().

An appropriate solution is that adding a new mock device to a mock
device array before calling platform_device_add() for it. It can
guarantee the new mock device is visible to CXL subsystem.

This patch introduces a new helped called cxl_mock_platform_device_add()
to handle the issue, and uses the function for all mock devices addition.

Fixes: 3a2b97b321 ("cxl/test: Improve init-order fidelity relative to real-world systems")
Signed-off-by: Li Ming <ming.li@zohomail.com>
Tested-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Link: https://patch.msgid.link/20260520121457.234404-1-ming.li@zohomail.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
2026-05-26 13:54:17 -07:00
..
test cxl/test: Update mock dev array before calling platform_device_add() 2026-05-26 13:54:17 -07:00
config_check.c cxl_test: Limit location for fake CFMWS to mappable range 2025-06-30 16:36:06 -07:00
cxl_acpi_test.c tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00
cxl_core_exports.c cxl/port: Move dport probe operations to a driver event 2026-02-02 08:41:29 -07:00
cxl_core_test.c tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00
cxl_mem_test.c tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00
cxl_pmem_test.c tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00
cxl_port_test.c tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00
Kbuild Merge branch 'for-7.1/cxl-region-refactor' into cxl-for-next 2026-04-03 12:30:57 -07:00
mock_acpi.c tools/testing/cxl: Use dev_is_platform() 2024-09-03 14:40:41 -07:00
watermark.h tools/testing/cxl: Prevent cxl_test from confusing production modules 2023-01-05 15:01:45 -08:00