summaryrefslogtreecommitdiff
path: root/drivers/cxl
diff options
context:
space:
mode:
authorYicong Yang <yangyicong@hisilicon.com>2025-11-17 10:47:55 +0000
committerConor Dooley <conor.dooley@microchip.com>2025-11-17 23:45:45 +0000
commitb43652d867cf2a5f31b14e3d9a320ad01fca0992 (patch)
tree172d06ac68865f571beb0d94f8ecf34cfae42f78 /drivers/cxl
parentf49ae86483c494ddc793d889f6df5ea68d138569 (diff)
downloadlinux-b43652d867cf2a5f31b14e3d9a320ad01fca0992.tar.gz
linux-b43652d867cf2a5f31b14e3d9a320ad01fca0992.tar.bz2
linux-b43652d867cf2a5f31b14e3d9a320ad01fca0992.zip
memregion: Support fine grained invalidate by cpu_cache_invalidate_memregion()
Extend cpu_cache_invalidate_memregion() to support invalidating a particular range of memory by introducing start and length parameters. Control of types of invalidation is left for when use cases turn up. For now everything is Clean and Invalidate. Where the range is unknown, use the provided cpu_cache_invalidate_all() helper to act as documentation of intent in a fashion that is clearer than passing (0, -1) to cpu_cache_invalidate_memregion(). Signed-off-by: Yicong Yang <yangyicong@hisilicon.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Acked-by: Davidlohr Bueso <dave@stgolabs.net> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Diffstat (limited to 'drivers/cxl')
-rw-r--r--drivers/cxl/core/region.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index d7fa76810f82..410e41cef5d3 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -228,7 +228,10 @@ static int cxl_region_invalidate_memregion(struct cxl_region *cxlr)
return -ENXIO;
}
- cpu_cache_invalidate_memregion();
+ if (!cxlr->params.res)
+ return -ENXIO;
+ cpu_cache_invalidate_memregion(cxlr->params.res->start,
+ resource_size(cxlr->params.res));
return 0;
}