drm/amdgpu: Fix memory leak in amdgpu_cs_pass1
authorDong Chenchen <dongchenchen2@huawei.com>
Thu, 10 Nov 2022 14:33:14 +0000 (22:33 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 10 Nov 2022 20:30:34 +0000 (15:30 -0500)
When p->gang_size equals 0, amdgpu_cs_pass1() will return directly
without freeing chunk_array, which will cause a memory leak issue,
this patch fixes it.

Fixes: 4624459c84d7 ("drm/amdgpu: add gang submit frontend v6")
Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
Signed-off-by: Dong Chenchen <dongchenchen2@huawei.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index d371000..255d545 100644 (file)
@@ -287,8 +287,10 @@ static int amdgpu_cs_pass1(struct amdgpu_cs_parser *p,
                }
        }
 
-       if (!p->gang_size)
-               return -EINVAL;
+       if (!p->gang_size) {
+               ret = -EINVAL;
+               goto free_partial_kdata;
+       }
 
        for (i = 0; i < p->gang_size; ++i) {
                ret = amdgpu_job_alloc(p->adev, num_ibs[i], &p->jobs[i], vm);