2024-02-11 15:06:35

by Daniil Dulov

[permalink] [raw]
Subject: [PATCH] drm/amdgpu/swsmu: Fix if statement in smu_baco_get_state()

In smu_baco_get_state() smu->ppt_funcs->baco_get_state is checked for NULL.
If it is NULL then the pointer is dereferenced.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 6c45e480fe23 ("drm/amd/powerplay: clear the swSMU code layer")
Signed-off-by: Daniil Dulov <[email protected]>
---
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index ee27970cfff9..0fadb6aacd4b 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -2497,7 +2497,7 @@ bool smu_baco_is_support(struct smu_context *smu)

int smu_baco_get_state(struct smu_context *smu, enum smu_baco_state *state)
{
- if (smu->ppt_funcs->baco_get_state)
+ if (!smu->ppt_funcs->baco_get_state)
return -EINVAL;

mutex_lock(&smu->mutex);
--
2.25.1