]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Mon, 23 Feb 2026 12:41:30 +0000 (12:41 +0000)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 25 Feb 2026 21:26:29 +0000 (16:26 -0500)
Drop reference to syncobj and timeline fence when aborting the ioctl due
output array being too small.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Fixes: a292fdecd728 ("drm/amdgpu: Implement userqueue signal/wait IOCTL")
Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c

index d43b0ebaf86272075745a224ca08bca315d6867d..6ea612adfc37568767655bd6397bf3521f3c8ede 100644 (file)
@@ -877,6 +877,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
                                dma_fence_unwrap_for_each(f, &iter, fence) {
                                        if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
                                                r = -EINVAL;
+                                               dma_fence_put(fence);
                                                goto free_fences;
                                        }
 
@@ -901,6 +902,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 
                        if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
                                r = -EINVAL;
+                               dma_fence_put(fence);
                                goto free_fences;
                        }