]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cxl/pci: Hold memdev lock in cxl_event_trace_record()
authorLi Ming <ming.li@zohomail.com>
Sat, 14 Mar 2026 07:06:32 +0000 (15:06 +0800)
committerDave Jiang <dave.jiang@intel.com>
Tue, 17 Mar 2026 14:54:15 +0000 (07:54 -0700)
commitdc372e5f429ced834d81ff12a945397dc43585a8
tree9e2392813a3f54e418eac7859b7b1043d6a9cef3
parente5564e39207517c1b0e0ac4dc20a1e858484ca88
cxl/pci: Hold memdev lock in cxl_event_trace_record()

cxl_event_config() invokes cxl_mem_get_event_record() to get remain
event logs from CXL device during cxl_pci_probe(). If CXL memdev probing
failed before that, it is possible to access an invalid endpoint. So
adding a cxlmd->driver binding status checking inside
cxl_dpa_to_region() to ensure the corresponding endpoint is valid.

Besides, cxl_event_trace_record() needs to hold memdev lock to invoke
cxl_dpa_to_region() to ensure the memdev probing completed. It is
possible that cxl_event_trace_record() is invoked during the CXL memdev
probing, especially user or cxl_acpi triggers CXL memdev re-probing.

Suggested-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Li Ming <ming.li@zohomail.com>
Link: https://patch.msgid.link/20260314-fix_access_endpoint_without_drv_check-v2-3-4c09edf2e1db@zohomail.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/mbox.c
drivers/cxl/core/region.c
drivers/cxl/cxlmem.h