diff options
| author | Yicong Yang <yangyicong@hisilicon.com> | 2025-11-17 10:47:55 +0000 |
|---|---|---|
| committer | Conor Dooley <conor.dooley@microchip.com> | 2025-11-17 23:45:45 +0000 |
| commit | b43652d867cf2a5f31b14e3d9a320ad01fca0992 (patch) | |
| tree | 172d06ac68865f571beb0d94f8ecf34cfae42f78 /drivers/cxl | |
| parent | f49ae86483c494ddc793d889f6df5ea68d138569 (diff) | |
| download | linux-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.c | 5 |
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; } |
