diff options
author | Tom St Denis <tom.stdenis@amd.com> | 2016-08-25 12:16:24 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-08-25 14:02:39 -0400 |
commit | cc945ce3ab563d7dd7657510e1990f6f606c9b46 (patch) | |
tree | 6d48b546917f12408f92bb2565f8893d64f7eac7 /drivers/gpu/drm/amd | |
parent | c08770eb8a442430420efd826981bbc3b2a1e341 (diff) | |
download | blackbird-obmc-linux-cc945ce3ab563d7dd7657510e1990f6f606c9b46.tar.gz blackbird-obmc-linux-cc945ce3ab563d7dd7657510e1990f6f606c9b46.zip |
drm/amd/amdgpu: Fix memleak in cz_parse_power_table()
If one of the entries fails to be allocated then free
all of the previous entries before freeing the array which
holds their pointers.
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c index 794c5f36ca68..9c2ab73a7ae3 100644 --- a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c @@ -350,6 +350,8 @@ static int cz_parse_power_table(struct amdgpu_device *adev) ps = kzalloc(sizeof(struct cz_ps), GFP_KERNEL); if (ps == NULL) { + for (j = 0; j < i; j++) + kfree(adev->pm.dpm.ps[j].ps_priv); kfree(adev->pm.dpm.ps); return -ENOMEM; } |