If drm_sched_job_init fails, hw_vm_fence is not freed currently, then cause memory leak.
Signed-off-by: Jiqian Chen <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 7f5d01164897..a5d3b35353da 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c @@ -216,11 +216,11 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, struct amdgpu_vm *vm, (*job)->generation = amdgpu_vm_generation(adev, vm); (*job)->vm_pd_addr = AMDGPU_BO_INVALID_OFFSET; - if (!entity) + if (!entity || + !drm_sched_job_init(&(*job)->base, entity, 1, owner, drm_client_id)) return 0; - return drm_sched_job_init(&(*job)->base, entity, 1, owner, - drm_client_id); + kfree((*job)->hw_vm_fence); err_fence: kfree((*job)->hw_fence); -- 2.34.1
