summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
diff options
context:
space:
mode:
authorHuang Rui <ray.huang@amd.com>2019-02-25 19:43:00 +0800
committerAlex Deucher <alexander.deucher@amd.com>2019-03-19 15:04:02 -0500
commit04cfc0c80d8a9a727929b589954757823c22e445 (patch)
tree654cbb7dff8a1effdbcd0ce48c0eadf32498a292 /drivers/gpu/drm/amd/powerplay/vega20_ppt.c
parentd4631cba9ebe6743df123e7c99372dfb2f840d1f (diff)
drm/amd/powerplay: fix the issue of checking on message mapping
The vega20_message_map[index] scope should be in PPSMC_Message_Count not in SMU_MSG_MAX_COUNT. Signed-off-by: Huang Rui <ray.huang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/vega20_ppt.c')
-rw-r--r--drivers/gpu/drm/amd/powerplay/vega20_ppt.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
index e6db56d158eb..6763dcd21cf1 100644
--- a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
@@ -131,10 +131,15 @@ static int vega20_message_map[SMU_MSG_MAX_COUNT] = {
static int vega20_get_smu_msg_index(struct smu_context *smc, uint32_t index)
{
- if (index > SMU_MSG_MAX_COUNT || index > PPSMC_Message_Count)
+ int val;
+ if (index > SMU_MSG_MAX_COUNT)
return -EINVAL;
- return vega20_message_map[index];
+ val = vega20_message_map[index];
+ if (val > PPSMC_Message_Count)
+ return -EINVAL;
+
+ return val;
}
static int vega20_allocate_dpm_context(struct smu_context *smu)