drm/amd/amdgpu: Fix out of bounds warning in amdgpu_hw_ip_info
authorJesse Zhang <jesse.zhang@amd.com>
Fri, 11 Apr 2025 08:22:27 +0000 (16:22 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Apr 2025 21:02:17 +0000 (17:02 -0400)
Fix an array index out of bounds warning in the DMA IP case of
amdgpu_hw_ip_info() where it was incorrectly checking
adev->gfx.gfx_ring[i].no_user_submission instead of
adev->sdma.instance[i].ring.no_user_submission.

The mismatch caused UBSAN to report an array bounds violation since
it was accessing the GFX ring array with SDMA instance indices.

Fixes: 4310acd4464b ("drm/amdgpu: add ring flag for no user submissions")
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Jesse Zhang <jesse.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

index 4fb174863a80673696a0476a3b7e7517bdda9603..3d319687c1c9cbf8a98db6271b56b5c420e8c696 100644 (file)
@@ -427,7 +427,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
                type = AMD_IP_BLOCK_TYPE_SDMA;
                for (i = 0; i < adev->sdma.num_instances; i++)
                        if (adev->sdma.instance[i].ring.sched.ready &&
-                           !adev->gfx.gfx_ring[i].no_user_submission)
+                           !adev->sdma.instance[i].ring.no_user_submission)
                                ++num_rings;
                ib_start_alignment = 256;
                ib_size_alignment = 4;