diff --git a/sys/dev/pci/drm/amd/amdgpu/amdgpu_userq_fence.c b/sys/dev/pci/drm/amd/amdgpu/amdgpu_userq_fence.c index 409f5ba6aec..3dfadad963b 100644 --- a/sys/dev/pci/drm/amd/amdgpu/amdgpu_userq_fence.c +++ b/sys/dev/pci/drm/amd/amdgpu/amdgpu_userq_fence.c @@ -908,6 +908,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data, dma_fence_unwrap_for_each(f, &iter, fence) { if (num_fences >= wait_info->num_fences) { r = -EINVAL; + dma_fence_put(fence); goto free_fences; } @@ -932,6 +933,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data, if (num_fences >= wait_info->num_fences) { r = -EINVAL; + dma_fence_put(fence); goto free_fences; }