[PATCH] drm/amdgpu: fix mmhub client id out-of-bounds access

Zhang, Yifan Yifan1.Zhang at amd.com
Thu Mar 7 03:11:25 UTC 2024


[AMD Official Use Only - General]

Can we just add cid 0x140 "UMSCH" to mmhub_client_ids_v3_3 structure ?

-----Original Message-----
From: Yu, Lang <Lang.Yu at amd.com>
Sent: Thursday, March 7, 2024 10:49 AM
To: amd-gfx at lists.freedesktop.org
Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Zhang, Yifan <Yifan1.Zhang at amd.com>; Yu, Lang <Lang.Yu at amd.com>
Subject: [PATCH] drm/amdgpu: fix mmhub client id out-of-bounds access

Fixes: aba2be41470a ("drm/amdgpu: add mmhub 3.3.0 support")

Signed-off-by: Lang Yu <Lang.Yu at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c
index b3961968c10c..238ea40c2450 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c
@@ -99,16 +99,15 @@ mmhub_v3_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
        switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) {
        case IP_VERSION(3, 3, 0):
        case IP_VERSION(3, 3, 1):
-               mmhub_cid = mmhub_client_ids_v3_3[cid][rw];
+               mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_v3_3) ?
+                           mmhub_client_ids_v3_3[cid][rw] :
+                           cid == 0x140 ? "UMSCH" : NULL;
                break;
        default:
                mmhub_cid = NULL;
                break;
        }

-       if (!mmhub_cid && cid == 0x140)
-               mmhub_cid = "UMSCH";
-
        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
                mmhub_cid ? mmhub_cid : "unknown", cid);
        dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
--
2.25.1



More information about the amd-gfx mailing list