Skip to content

Commit 630efee

Browse files
kwachowsChristianKoenigAMD
authored andcommitted
drm: Fix object leak in DRM_IOCTL_GEM_CHANGE_HANDLE
Add missing drm_gem_object_put() call when drm_gem_object_lookup() successfully returns an object. This fixes a GEM object reference leak that can prevent driver modules from unloading when using prime buffers. Fixes: 5309672 ("drm: Add DRM prime interface to reassign GEM handle") Cc: <stable@vger.kernel.org> # v6.18+ Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Maciej Falkowski <maciej.falkowski@linux.intel.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20251212134133.475218-1-karol.wachowski@linux.intel.com
1 parent 526aafa commit 630efee

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

drivers/gpu/drm/drm_gem.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -979,8 +979,10 @@ int drm_gem_change_handle_ioctl(struct drm_device *dev, void *data,
979979
if (!obj)
980980
return -ENOENT;
981981

982-
if (args->handle == args->new_handle)
983-
return 0;
982+
if (args->handle == args->new_handle) {
983+
ret = 0;
984+
goto out;
985+
}
984986

985987
mutex_lock(&file_priv->prime.lock);
986988

@@ -1012,6 +1014,8 @@ int drm_gem_change_handle_ioctl(struct drm_device *dev, void *data,
10121014

10131015
out_unlock:
10141016
mutex_unlock(&file_priv->prime.lock);
1017+
out:
1018+
drm_gem_object_put(obj);
10151019

10161020
return ret;
10171021
}

0 commit comments

Comments
 (0)