Reviewed-by: Benjamin Cheng <[email protected]>
On 2026-03-16 15:52, Alex Deucher wrote: > The value should never exceed the array size as those > are the only values the hardware is expected to return, > but add checks anyway. > > Cc: Benjamin Cheng <[email protected]> > Signed-off-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > index e35ed0cc2ec62..8eba99aa0f8fa 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > @@ -662,28 +662,35 @@ static int gmc_v9_0_process_interrupt(struct > amdgpu_device *adev, > } else { > switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) { > case IP_VERSION(9, 0, 0): > - mmhub_cid = mmhub_client_ids_vega10[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_vega10) ? > + mmhub_client_ids_vega10[cid][rw] : NULL; > break; > case IP_VERSION(9, 3, 0): > - mmhub_cid = mmhub_client_ids_vega12[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_vega12) ? > + mmhub_client_ids_vega12[cid][rw] : NULL; > break; > case IP_VERSION(9, 4, 0): > - mmhub_cid = mmhub_client_ids_vega20[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_vega20) ? > + mmhub_client_ids_vega20[cid][rw] : NULL; > break; > case IP_VERSION(9, 4, 1): > - mmhub_cid = mmhub_client_ids_arcturus[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_arcturus) > ? > + mmhub_client_ids_arcturus[cid][rw] : NULL; > break; > case IP_VERSION(9, 1, 0): > case IP_VERSION(9, 2, 0): > - mmhub_cid = mmhub_client_ids_raven[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_raven) ? > + mmhub_client_ids_raven[cid][rw] : NULL; > break; > case IP_VERSION(1, 5, 0): > case IP_VERSION(2, 4, 0): > - mmhub_cid = mmhub_client_ids_renoir[cid][rw]; > + mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_renoir) ? > + mmhub_client_ids_renoir[cid][rw] : NULL; > break; > case IP_VERSION(1, 8, 0): > case IP_VERSION(9, 4, 2): > - mmhub_cid = mmhub_client_ids_aldebaran[cid][rw]; > + mmhub_cid = cid < > ARRAY_SIZE(mmhub_client_ids_aldebaran) ? > + mmhub_client_ids_aldebaran[cid][rw] : NULL; > break; > default: > mmhub_cid = NULL;
