drm/amdgpu: grab extra fence reference for drm_sched_job_add_dependency
authorChristian König <ckoenig.leichtzumerken@gmail.com>
Mon, 19 Dec 2022 10:47:18 +0000 (11:47 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 21 Dec 2022 20:34:03 +0000 (15:34 -0500)
That function consumes the reference.

Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
Reported-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Christian König <christian.koenig@amd.com>
Fixes: aab9cf7b6954 ("drm/amdgpu: use scheduler dependencies for VM updates")
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c

index 59cf64216fbb662b54ec0dd6eef34597c730d7af..535cd6569bccf518d79ec129819618cdc9d6ad43 100644 (file)
@@ -238,8 +238,10 @@ static int amdgpu_vm_sdma_update(struct amdgpu_vm_update_params *p,
        /* Wait for PD/PT moves to be completed */
        dma_resv_iter_begin(&cursor, bo->tbo.base.resv, DMA_RESV_USAGE_KERNEL);
        dma_resv_for_each_fence_unlocked(&cursor, fence) {
+               dma_fence_get(fence);
                r = drm_sched_job_add_dependency(&p->job->base, fence);
                if (r) {
+                       dma_fence_put(fence);
                        dma_resv_iter_end(&cursor);
                        return r;
                }