summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZhipeng Lu <alexious@zju.edu.cn>2023-12-15 00:59:38 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-01-25 15:27:36 -0800
commit2c6537c58bce1a7caeabd43d2380eb2737545521 (patch)
treef738fab8e6b69846a1225872807ab6d405a4c64a /include
parent4e26e2d485fbbbd313ba30ed59f4db953a192300 (diff)
downloadlinux-2c6537c58bce1a7caeabd43d2380eb2737545521.tar.gz
linux-2c6537c58bce1a7caeabd43d2380eb2737545521.tar.bz2
linux-2c6537c58bce1a7caeabd43d2380eb2737545521.zip
drm/amd/pm: fix a double-free in amdgpu_parse_extended_power_table
[ Upstream commit a6582701178a47c4d0cb2188c965c59c0c0647c8 ] The amdgpu_free_extended_power_table is called in every error-handling paths of amdgpu_parse_extended_power_table. However, after the following call chain of returning: amdgpu_parse_extended_power_table |-> kv_dpm_init / si_dpm_init (the only two caller of amdgpu_parse_extended_power_table) |-> kv_dpm_sw_init / si_dpm_sw_init (the only caller of kv_dpm_init / si_dpm_init, accordingly) |-> kv_dpm_fini / si_dpm_fini (goto dpm_failed in xx_dpm_sw_init) |-> amdgpu_free_extended_power_table As above, the amdgpu_free_extended_power_table is called twice in this returning chain and thus a double-free is triggered. Similarily, the last kfree in amdgpu_parse_extended_power_table also cause a double free with amdgpu_free_extended_power_table in kv_dpm_fini. Fixes: 84176663e70d ("drm/amd/pm: create a new holder for those APIs used only by legacy ASICs(si/kv)") Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions