]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amdgpu: fix out of bounds access in gfx11 during ip dump
authorSunil Khatri <sunil.khatri@amd.com>
Tue, 2 Jul 2024 08:19:20 +0000 (13:49 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 2 Jul 2024 22:07:16 +0000 (18:07 -0400)
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.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c

index 38150398a31b1fe6bfed1da9e9a24334e7fb2748..6228dd0450a70d1f062e79f7236d8ebdbada4fc1 100644 (file)
@@ -6411,6 +6411,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,
@@ -6475,6 +6476,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);