As i915 is using drm_gem_private_object_init, it is best to use the inverse function for cleanup: drm_gem_object_release. This removes need for a shmem_release and phys_release. Signed-off-by: Brian Welty <brian.welty@xxxxxxxxx> --- Chris, the cleanup sequence in drm_gem_object_release() vs the replaced i915 code is different, but should be okay? Light testing didn't find any issues. --- drivers/gpu/drm/i915/gem/i915_gem_object.c | 4 +--- drivers/gpu/drm/i915/gem/i915_gem_phys.c | 7 ------- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 9 +-------- 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c index 46bacc82ddc4..d51838d7d2ec 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c @@ -159,7 +159,6 @@ static void __i915_gem_free_object_rcu(struct rcu_head *head) container_of(head, typeof(*obj), rcu); struct drm_i915_private *i915 = to_i915(obj->base.dev); - dma_resv_fini(&obj->base._resv); i915_gem_object_free(obj); GEM_BUG_ON(!atomic_read(&i915->mm.free_count)); @@ -222,8 +221,7 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915, if (obj->base.import_attach) drm_prime_gem_destroy(&obj->base, NULL); - drm_gem_free_mmap_offset(&obj->base); - + drm_gem_object_release(&obj->base); if (obj->ops->release) obj->ops->release(obj); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/i915_gem_phys.c index b1b7c1b3038a..7c19f92f256b 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_phys.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_phys.c @@ -134,16 +134,9 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj, drm_pci_free(obj->base.dev, obj->phys_handle); } -static void phys_release(struct drm_i915_gem_object *obj) -{ - fput(obj->base.filp); -} - static const struct drm_i915_gem_object_ops i915_gem_phys_ops = { .get_pages = i915_gem_object_get_pages_phys, .put_pages = i915_gem_object_put_pages_phys, - - .release = phys_release, }; int i915_gem_object_attach_phys(struct drm_i915_gem_object *obj, int align) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index a2a980d9d241..4004cfe1e28a 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -418,13 +418,6 @@ shmem_pwrite(struct drm_i915_gem_object *obj, return 0; } -static void shmem_release(struct drm_i915_gem_object *obj) -{ - i915_gem_object_release_memory_region(obj); - - fput(obj->base.filp); -} - const struct drm_i915_gem_object_ops i915_gem_shmem_ops = { .flags = I915_GEM_OBJECT_HAS_STRUCT_PAGE | I915_GEM_OBJECT_IS_SHRINKABLE, @@ -436,7 +429,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = { .pwrite = shmem_pwrite, - .release = shmem_release, + .release = i915_gem_object_release_memory_region, }; static int __create_shmem(struct drm_i915_private *i915, -- 2.21.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx