Messages in this thread Patch in this message |  | | From | Richard Cheng <> | | Subject | [PATCH v3 3/5] cxl/region: Don't leak tolerated RAM -EFAULT from unmapped poison scan | | Date | Wed, 8 Jul 2026 15:42:26 +0800 |
| |
cxl_get_poison_unmapped() tolerates the -EFAULT a RAM partition returns for Get Poison List by skipping that partition, but left rc holding the error. If the tolerated RAM fault was the last poison query before the loop ended, the function returned a spurious -EFAULT and the poison-list read failed even though enumeration succeeded. Reset rc to 0 when tolerating the fault, matching poison_by_decoder().
Fixes: be5cbd0840275 ("cxl: Kill enum cxl_decoder_mode") Reviewed-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Richard Cheng <icheng@nvidia.com> --- Changelog:
v2->v3: - No code changes.
v1->v2: - No code changes. --- drivers/cxl/core/region.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index be246fb09c99..52ba8e9e4288 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -2933,8 +2933,10 @@ static int cxl_get_poison_unmapped(struct cxl_memdev *cxlmd, if (!length) continue; rc = cxl_mem_get_poison(cxlmd, offset, length, NULL); - if (rc == -EFAULT && cxlds->part[i].mode == CXL_PARTMODE_RAM) + if (rc == -EFAULT && cxlds->part[i].mode == CXL_PARTMODE_RAM) { + rc = 0; continue; + } if (rc) break; } -- 2.43.0
|  |