]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit - drivers/gpu/drm/drm_gem_ttm_helper.c
drm/ttm: fix mmap refcounting
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 13 Nov 2019 13:56:12 +0000 (14:56 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 15 Nov 2019 07:00:08 +0000 (08:00 +0100)
commit9786b65bc61acec63f923978c75e707afbb74bc7
treeb27b7b08da561cec118a2f326de7b426ee487ac7
parenta64fc11b9a520c55ca34d82e5ca32274f49b6b15
drm/ttm: fix mmap refcounting

When mapping ttm objects via drm_gem_ttm_mmap() helper
drm_gem_mmap_obj() will take an object reference.  That gets
never released due to ttm having its own reference counting.

Fix that by dropping the gem object reference once the ttm mmap
completed (and ttm refcount got bumped).

For that to work properly the drm_gem_object_get() call in
drm_gem_ttm_mmap() must be moved so it happens before calling
obj->funcs->mmap(), otherwise the gem refcount would go down
to zero.

Fixes: 231927d939f0 ("drm/ttm: add drm_gem_ttm_mmap()")
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: http://patchwork.freedesktop.org/patch/msgid/20191113135612.19679-1-kraxel@redhat.com
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/drm_gem_ttm_helper.c