Re: [PATCH v3 3/3] cxl/region: Simplify cxl_region_nid()

From: fan
Date: Tue Jul 23 2024 - 13:49:46 EST


On Tue, Jun 18, 2024 at 04:46:39PM +0800, Huang Ying wrote:
> The node ID of the region can be gotten via resource start address
> directly. This simplifies the implementation of cxl_region_nid().
>
> Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>
> Suggested-by: Alison Schofield <alison.schofield@xxxxxxxxx>
> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> Cc: Dave Jiang <dave.jiang@xxxxxxxxx>
> Cc: Bharata B Rao <bharata@xxxxxxx>
> Cc: Alistair Popple <apopple@xxxxxxxxxx>
> Cc: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
> Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx>
> Cc: Ira Weiny <ira.weiny@xxxxxxxxx>
> ---
> drivers/cxl/core/region.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index dc15ceba7ab7..605efe3562c6 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -2309,15 +2309,13 @@ static bool cxl_region_update_coordinates(struct cxl_region *cxlr, int nid)
> static int cxl_region_nid(struct cxl_region *cxlr)
> {
> struct cxl_region_params *p = &cxlr->params;
> - struct cxl_endpoint_decoder *cxled;
> - struct cxl_decoder *cxld;
> + struct resource *res;
>
> guard(rwsem_read)(&cxl_region_rwsem);
> - cxled = p->targets[0];
> - if (!cxled)
> + res = p->res;
> + if (!res)
> return NUMA_NO_NODE;
> - cxld = &cxled->cxld;
> - return phys_to_target_node(cxld->hpa_range.start);
> + return phys_to_target_node(res->start);
> }
>
> static int cxl_region_perf_attrs_callback(struct notifier_block *nb,
> --
> 2.39.2
>

Reviewed-by: Fan Ni <fan.ni@xxxxxxxxxxx>