Add bounds check to prevent array overflow.

v2:
  Add warning messages.

Signed-off-by: YiPeng Chai <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 94ddb8b98abf..8a49ae4c0132 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -5064,6 +5064,13 @@ static void 
amdgpu_register_bad_pages_mca_notifier(struct amdgpu_device *adev)
         * Use this list instead of mgpu_info to find the amdgpu
         * device on which the UMC error was reported.
         */
+       if (mce_adev_list.num_gpu >= MAX_GPU_INSTANCE) {
+               dev_warn_ratelimited(adev->dev,
+                       "mce_adev_list full, skip notifier registration 
(max=%d)\n",
+                       MAX_GPU_INSTANCE);
+               return;
+       }
+
        mce_adev_list.devs[mce_adev_list.num_gpu++] = adev;
 
        /*
-- 
2.43.0

Reply via email to