Skip to content

Commit 048c1c4

Browse files
Tvrtko Ursulinalexdeucher
authored andcommitted
drm/amdgpu/userq: Consolidate wait ioctl exit path
If we gate the fence destruction with a check telling us whether there are valid pointers in there we can eliminate the need for dual, basically identical, exit paths. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit bea29bb)
1 parent a145bbf commit 048c1c4

1 file changed

Lines changed: 5 additions & 23 deletions

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -983,32 +983,14 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
983983
r = -EFAULT;
984984
goto free_fences;
985985
}
986-
987-
kfree(fences);
988-
kfree(fence_info);
989986
}
990987

991-
drm_exec_fini(&exec);
992-
for (i = 0; i < num_read_bo_handles; i++)
993-
drm_gem_object_put(gobj_read[i]);
994-
kfree(gobj_read);
995-
996-
for (i = 0; i < num_write_bo_handles; i++)
997-
drm_gem_object_put(gobj_write[i]);
998-
kfree(gobj_write);
999-
1000-
kfree(timeline_points);
1001-
kfree(timeline_handles);
1002-
kfree(syncobj_handles);
1003-
kfree(bo_handles_write);
1004-
kfree(bo_handles_read);
1005-
1006-
return 0;
1007-
1008988
free_fences:
1009-
while (num_fences-- > 0)
1010-
dma_fence_put(fences[num_fences]);
1011-
kfree(fences);
989+
if (fences) {
990+
while (num_fences-- > 0)
991+
dma_fence_put(fences[num_fences]);
992+
kfree(fences);
993+
}
1012994
free_fence_info:
1013995
kfree(fence_info);
1014996
exec_fini:

0 commit comments

Comments
 (0)