summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>2026-02-23 15:41:30 +0300
committerAlex Deucher <alexander.deucher@amd.com>2026-02-26 00:26:29 +0300
commit68951e9c3e6bb22396bc42ef2359751c8315dd27 (patch)
tree8949aa335fb0a84431d68698570dbd6c0a980cb3
parent6fde419222a82e4dd201a0cafca63ef8cf56045f (diff)
downloadlinux-68951e9c3e6bb22396bc42ef2359751c8315dd27.tar.xz
drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl
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>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
index d43b0ebaf862..6ea612adfc37 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -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;
}