umc_v12_0_fill_error_record() returns ret after walking the pages
reported by amdgpu_umc_lookup_bad_pages_in_a_row(). That helper can
return zero entries, leaving the loop skipped and ret uninitialized.

Initialize ret to -EINVAL immediately before the loop so the zero-entry
path returns a deterministic error status while preserving the existing
loop behavior when at least one page is processed.

Suggested-by: Christian König <[email protected]>
Suggested-by: Tao Zhou <[email protected]>
Signed-off-by: Ruoyu Wang <[email protected]>
---
v3:
- Initialize ret to -EINVAL instead of 0 to match the original error
  semantics preferred by Tao Zhou.

v2:
- Set ret immediately before the loop instead of initializing it in the
  declaration, as suggested by Christian.
- Avoid describing the zero-entry case as an allocation-failure fix.

 drivers/gpu/drm/amd/amdgpu/umc_v12_0.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c 
b/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
index db505ab32fa0f..382e6d2dda9c1 100644
--- a/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
@@ -689,6 +689,7 @@ static int umc_v12_0_fill_error_record(struct amdgpu_device 
*adev,
        count = amdgpu_umc_lookup_bad_pages_in_a_row(adev,
                                ecc_err->pa_pfn << AMDGPU_GPU_PAGE_SHIFT,
                                page_pfn, ARRAY_SIZE(page_pfn));
+       ret = -EINVAL;
 
        for (i = 0; i < count; i++) {
                ret = amdgpu_umc_fill_error_record(err_data,
-- 
2.51.0

Reply via email to