In smu_v15_0_fini_smc_tables, dpm_policies was not freed or NULLed, causing a 
memory leak.
Add kfree() and NULL assignment to properly release memory and avoid dangling 
pointers.

Fixes: 46a072ff8ee6 ("drm/amd/pm: Add initial support for smu v15_0_8");

Signed-off-by: Yang Wang <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
index 4f0c94821e3f..4a61e900131f 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
@@ -435,10 +435,12 @@ int smu_v15_0_fini_smc_tables(struct smu_context *smu)
        smu_table->watermarks_table = NULL;
        smu_table->metrics_time = 0;
 
+       kfree(smu_dpm->dpm_policies);
        kfree(smu_dpm->dpm_context);
        kfree(smu_dpm->golden_dpm_context);
        kfree(smu_dpm->dpm_current_power_state);
        kfree(smu_dpm->dpm_request_power_state);
+       smu_dpm->dpm_policies = NULL;
        smu_dpm->dpm_context = NULL;
        smu_dpm->golden_dpm_context = NULL;
        smu_dpm->dpm_context_size = 0;
-- 
2.47.3

Reply via email to