Re: [PATCH v2 0/1] Fix hmat_adist_nb for CXL
Alejandro Lucero Palau <[email protected]> Mon, 10 Aug 2026 10:31:16 +0100
| Newsgroups | gmane.linux.acpi.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Rafael, Just a reminder of this fix which, if not applied, could trigger problems for the CXL Type2 drivers recently merged in net-next: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=997bfb05c919d2c5ee77c594d354f6c61b99ccdf As stated in the commit after comments from Richard, this could also be a problem for current Type3 CXL kernel support depending on kernel configuration. Let me know if you see any problem with this fix. Thank you. On 7/16/26 19:11, [email protected] wrote: > From: Alejandro Lucero <[email protected]> > > v2: > - Add Fixes (Richarg Cheng) > - Change commit as fix for Type2/Type3 (Richar Cheng) > > RFC > === > While working on adding CXL Type2 support I found a problem with > register_mt_adistance_algorithm() which is used inside > cxl_region_probe(). It turns out my kernel config had not > CONFIG_MEMORY_HOTPLUG enabled leading to the hmat_adist_nb notifier > block deleted after kernel initialization without doing any notifer > block unregister, leaving the notifier chain unaware of this. A CXL > Type2 driver can be load after kernel initialization and with a kernel > not enabling memory hotplug, the notifier registration crashes if the > released memory from hmat_adist_nb is reused. > > I'm not sure but I do not think this can happen for Type3 devices > because the related CXL driver is used only during kernel initialization > if memory hotplug not enabled. Type2, aka CXL accelerator drivers, is > coming and the problem will arise with certainty. > > I have contemplated to modify how the identified __meminit and > __meminitdat are defined in linux/init.h, extending the case for being > empty definitions if CONFIG_CXL_MEM=y, but I think it makes sense to > only avoid the use of __meminit for hmat_adist_nb. > > FWIW, a Type2 device should not require CONFIG_MEMORY_HOTPLUG and its > memory is currently initialized by the BIOS. Maybe not having memory > hotplug enabled is unusual and even more with CXL, so another option > could be to enable memory hotplug if CXL mem is enabled. > > Alejandro Lucero (1): > acpi/hmat: preserve hmat_adist_nb notifier block > > drivers/acpi/numa/hmat.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > > base-commit: 8cd9520d35a6c38db6567e97dd93b1f11f185dc6