In the Linux kernel, the following vulnerability has been resolved: cxl/pmem: Fix nvdimm registration races A loop of the form: while true; do modprobe cxlpci; modprobe -r cxlpci; done ...fails with the following crash signature: BUG: kernel NULL pointer dereference, address: 0000000000000040 [..] RIP: 0010:cxlinternalsendcmd+0x5/0xb0 [cxlcore] [..] Call Trace: <TASK> cxlpmemctl+0x121/0x240 [cxlpmem] nvdimmgetconfigdata+0xd6/0x1a0 [libnvdimm] ndlabeldatainit+0x135/0x7e0 [libnvdimm] nvdimmprobe+0xd6/0x1c0 [libnvdimm] nvdimmbusprobe+0x7a/0x1e0 [libnvdimm] really_probe+0xde/0x380 __driverprobedevice+0x78/0x170 driverprobedevice+0x1f/0x90 __deviceattachdriver+0x85/0x110 bus_foreachdrv+0x7d/0xc0 __deviceattach+0xb4/0x1e0 busprobedevice+0x9f/0xc0 deviceadd+0x445/0x9c0 ndasyncdeviceregister+0xe/0x40 [libnvdimm] asyncrunentryfn+0x30/0x130 ...namely that the bottom half of async nvdimm device registration runs after the CXL has already torn down the context that cxlpmemctl() needs. Unlike the ACPI NFIT case that benefits from launching multiple nvdimm device registrations in parallel from those listed in the table, CXL is already marked PROBEPREFERASYNCHRONOUS. So provide for a synchronous registration path to preclude this scenario.