During ip dump in gfx10 the index variable is reused but is
not reinitialized to 0 and this causes the index calculation
to be wrong and access out of bound access.

Signed-off-by: Sunil Khatri <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
index 18488c02d1cf..a52c72739b40 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -9287,6 +9287,7 @@ static void gfx_v10_ip_print(void *handle, struct 
drm_printer *p)
        if (!adev->gfx.ip_dump_gfx_queues)
                return;
 
+       index = 0;
        reg_count = ARRAY_SIZE(gc_gfx_queue_reg_list_10);
        drm_printf(p, "\nnum_me: %d num_pipe: %d num_queue: %d\n",
                   adev->gfx.me.num_me,
@@ -9352,6 +9353,7 @@ static void gfx_v10_ip_dump(void *handle)
        if (!adev->gfx.ip_dump_gfx_queues)
                return;
 
+       index = 0;
        reg_count = ARRAY_SIZE(gc_gfx_queue_reg_list_10);
        amdgpu_gfx_off_ctrl(adev, false);
        mutex_lock(&adev->srbm_mutex);
-- 
2.34.1

Reply via email to