]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.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 22:49:02 +0000 (17:49 -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>
(cherry picked from commit 68951e9c3e6bb22396bc42ef2359751c8315dd27)
Cc: <stable@vger.kernel.org> # v6.16+
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c

index 8013260e29dcae6edc616ac6d50e4e5089054d1f..9b9947b94b89f45e364ed4077a627a3b8b1789d7 100644 (file)
@@ -876,6 +876,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;
                                        }
 
@@ -900,6 +901,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;
                        }