In amdgpu_devcoredump_print_ibs(), the NO_CPU_ACCESS VRAM path passed
cursor.start/4 and cursor.size/4 to amdgpu_device_mm_access(), but that
function's pos/size parameters are byte offsets/lengths (confirmed by
amdgpu_ttm_vram_mm_access() and leading to wrong size calculation.

Similarly with that change the off index needs to be calculated
based on dword since that is a u32 type.

Fixes: 7b15fc2d1f1a ("drm/amdgpu: dump job ibs in the devcoredump")
Signed-off-by: Sunil Khatri <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
index 76771ad30c41..2d3fb87af00a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
@@ -297,10 +297,10 @@ amdgpu_devcoredump_print_ibs(struct drm_printer *p,
                        amdgpu_res_first(abo->tbo.resource, offset,
                                         coredump->ibs[i].ib_size_dw * 4, 
&cursor);
                        while (cursor.remaining) {
-                               amdgpu_device_mm_access(adev, cursor.start / 4,
-                                                       &ib_content[off], 
cursor.size / 4,
+                               amdgpu_device_mm_access(adev, cursor.start,
+                                                       &ib_content[off], 
cursor.size,
                                                        false);
-                               off += cursor.size;
+                               off += cursor.size / 4;
                                amdgpu_res_next(&cursor, cursor.size);
                        }
                        emit_content = true;
-- 
2.34.1

Reply via email to