From 067558177be63c38935f2668cb270e42d37e6372 Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Mon, 1 Nov 2021 16:15:33 -0500 Subject: drm/amd/pm: Add missing mutex for pp_get_power_profile_mode Prevent possible issues from set and get being called simultaneously. Signed-off-by: Mario Limonciello Reviewed-by: Lijo Lazar Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c') diff --git a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c index 321215003643..978007664e71 100644 --- a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +++ b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c @@ -875,6 +875,7 @@ pp_dpm_get_vce_clock_state(void *handle, unsigned idx) static int pp_get_power_profile_mode(void *handle, char *buf) { struct pp_hwmgr *hwmgr = handle; + int ret; if (!hwmgr || !hwmgr->pm_en || !buf) return -EINVAL; @@ -884,7 +885,10 @@ static int pp_get_power_profile_mode(void *handle, char *buf) return snprintf(buf, PAGE_SIZE, "\n"); } - return hwmgr->hwmgr_func->get_power_profile_mode(hwmgr, buf); + mutex_lock(&hwmgr->smu_lock); + ret = hwmgr->hwmgr_func->get_power_profile_mode(hwmgr, buf); + mutex_unlock(&hwmgr->smu_lock); + return ret; } static int pp_set_power_profile_mode(void *handle, long *input, uint32_t size) -- cgit