Commit b6cfddd2 authored by Dave Jiang's avatar Dave Jiang
Browse files

cxl: Adjust offset calculation for poison injection

The HPA to DPA translation for poison injection assumes that the
base address starts from where the CXL region begins. When the
extended linear cache is active, the offset can be within the DRAM
region. Adjust the offset so that it correctly reflects the offset
within the CXL region.

[ dj: Add fixes tag from Alison ]

Fixes: c3dd6768 ("cxl/region: Add inject and clear poison by region offset")
Link: https://patch.msgid.link/20251031173224.3537030-5-dave.jiang@intel.com


Reviewed-by: default avatarAlison Schofield <alison.schofield@intel.com>
Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
parent 7c3643f2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3702,6 +3702,7 @@ static int cxl_region_debugfs_poison_inject(void *data, u64 offset)
	if (validate_region_offset(cxlr, offset))
		return -EINVAL;

	offset -= cxlr->params.cache_size;
	rc = region_offset_to_dpa_result(cxlr, offset, &result);
	if (rc || !result.cxlmd || result.dpa == ULLONG_MAX) {
		dev_dbg(&cxlr->dev,
@@ -3734,6 +3735,7 @@ static int cxl_region_debugfs_poison_clear(void *data, u64 offset)
	if (validate_region_offset(cxlr, offset))
		return -EINVAL;

	offset -= cxlr->params.cache_size;
	rc = region_offset_to_dpa_result(cxlr, offset, &result);
	if (rc || !result.cxlmd || result.dpa == ULLONG_MAX) {
		dev_dbg(&cxlr->dev,