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

Huang Ying
2024-06-18T08:47:05Z

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@intel.com>
Suggested-by: Alison Schofield <alison.schofield@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Bharata B Rao <bharata@amd.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Ira Weiny <ira.weiny@intel.com>
---
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