OSDN Git Service

drm/udl: Remove udl implementation of GEM's free_object()
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 14 Nov 2019 14:10:22 +0000 (15:10 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 26 Nov 2019 11:34:39 +0000 (12:34 +0100)
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: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191114141025.32198-3-tzimmermann@suse.de
drivers/gpu/drm/udl/udl_gem.c

index 6eade6b..b6e26f9 100644 (file)
  * 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,