Commit f3f8630a authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/udl: Remove udl implementation of GEM's free_object()



Udl's custom implementation for struct drm_gem_object_funcs.free_object
unmaps perma-mapped memory buffer before freeing the buffer object.

After switching to generic fbdev emulation and fixing the damage
handler, no perma-mapped buffers have to be released. Switch to SHMEM's
implementation of free_object.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191114141025.32198-3-tzimmermann@suse.de
parent 6c44e30a
Loading
Loading
Loading
Loading
+1 −17
Original line number Diff line number Diff line
@@ -17,22 +17,6 @@
 * GEM object funcs
 */

static void udl_gem_object_free_object(struct drm_gem_object *obj)
{
	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);

	/* Fbdev emulation vmaps the buffer. Unmap it here for consistency
	 * with the original udl GEM code.
	 *
	 * TODO: Switch to generic fbdev emulation and release the
	 *       GEM object with drm_gem_shmem_free_object().
	 */
	if (shmem->vaddr)
		drm_gem_shmem_vunmap(obj, shmem->vaddr);

	drm_gem_shmem_free_object(obj);
}

static int udl_gem_object_mmap(struct drm_gem_object *obj,
			       struct vm_area_struct *vma)
{
@@ -91,7 +75,7 @@ err_zero_use:
}

static const struct drm_gem_object_funcs udl_gem_object_funcs = {
	.free = udl_gem_object_free_object,
	.free = drm_gem_shmem_free_object,
	.print_info = drm_gem_shmem_print_info,
	.pin = drm_gem_shmem_pin,
	.unpin = drm_gem_shmem_unpin,