Re: [PATCH v3 1/3] cxl/region: Fix a race condition in memory hotplug notifier

From: Davidlohr Bueso
Date: Mon Jun 24 2024 - 12:26:35 EST


On Tue, 18 Jun 2024, Huang Ying wrote:

In the memory hotplug notifier function of the CXL region,
cxl_region_perf_attrs_callback(), the node ID is obtained by checking
the host address range of the region. However, the address range
information is not available when the region is registered in
devm_cxl_add_region(). Additionally, this information may be removed
or added under the protection of cxl_region_rwsem during runtime. If
the memory notifier is called for nodes other than that backed by the
region, a race condition may occur, potentially leading to a NULL
dereference or an invalid address range.

The race condition is addressed by checking the availability of the
address range information under the protection of cxl_region_rwsem. To
enhance code readability and use guard(), the relevant code has been
moved into a newly added function: cxl_region_nid().

Reviewed-by: Davidlohr Bueso <dave@xxxxxxxxxxxx>