During ip dump in gfx11 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_v11_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
index 0d078d0db162..b49e4e85bddf 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
@@ -6401,6 +6401,7 @@ static void gfx_v11_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_11);
        drm_printf(p, "\nnum_me: %d num_pipe: %d num_queue: %d\n",
                   adev->gfx.me.num_me,
@@ -6465,6 +6466,7 @@ static void gfx_v11_ip_dump(void *handle)
        if (!adev->gfx.ip_dump_gfx_queues)
                return;
 
+       index = 0;
        reg_count = ARRAY_SIZE(gc_gfx_queue_reg_list_11);
        amdgpu_gfx_off_ctrl(adev, false);
        mutex_lock(&adev->srbm_mutex);
-- 
2.34.1

Reply via email to