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

From: Jonathan Cameron
Date: Thu Jun 20 2024 - 07:11:07 EST


On Tue, 18 Jun 2024 16:46:37 +0800
Huang Ying <ying.huang@xxxxxxxxx> 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().
>
> Fixes: 067353a46d8c ("cxl/region: Add memory hotplug notifier for cxl region")
> Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>
Looks good to me and matches similar cases. Thanks for the detailed patch
description btw

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>