diff options
author | Rex Zhu <Rex.Zhu@amd.com> | 2017-01-02 05:37:36 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-01-27 11:12:59 -0500 |
commit | 4c283acf69cf85f4e72c380b055a8fdba01d272e (patch) | |
tree | 876e9e597d69859bc1b2c6f3dd22fcc34795e994 | |
parent | 6f4dc24a88a015ca31c8dbb79f9ad3bcc34f386e (diff) |
drm/amd/powerplay: not free hwmgr/smumgr in asic private functions.
struct smumgr/hwmgr will be freed on amd_powerplay_destory
and if we free them in one of asic private functions, other private
date may not be freed. for example: power state and power table
in hwmgr.
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | 1 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c index f4ff236af96a..14701772bec6 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | |||
@@ -1217,10 +1217,9 @@ static int cz_hwmgr_backend_init(struct pp_hwmgr *hwmgr) | |||
1217 | 1217 | ||
1218 | static int cz_hwmgr_backend_fini(struct pp_hwmgr *hwmgr) | 1218 | static int cz_hwmgr_backend_fini(struct pp_hwmgr *hwmgr) |
1219 | { | 1219 | { |
1220 | if (hwmgr != NULL && hwmgr->backend != NULL) { | 1220 | if (hwmgr != NULL && hwmgr->backend != NULL) |
1221 | kfree(hwmgr->backend); | 1221 | kfree(hwmgr->backend); |
1222 | kfree(hwmgr); | 1222 | |
1223 | } | ||
1224 | return 0; | 1223 | return 0; |
1225 | } | 1224 | } |
1226 | 1225 | ||
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c index 1f5148e1f3de..2d4cf2c77c40 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | |||
@@ -831,7 +831,6 @@ static int cz_smu_fini(struct pp_smumgr *smumgr) | |||
831 | cgs_free_gpu_mem(smumgr->device, | 831 | cgs_free_gpu_mem(smumgr->device, |
832 | cz_smu->smu_buffer.handle); | 832 | cz_smu->smu_buffer.handle); |
833 | kfree(cz_smu); | 833 | kfree(cz_smu); |
834 | kfree(smumgr); | ||
835 | } | 834 | } |
836 | 835 | ||
837 | return 0; | 836 | return 0; |