drm/i915/phys: unconditionally call release_memory_region
authorAbdiel Janulgue <abdiel.janulgue@linux.intel.com>
Thu, 5 Mar 2020 20:42:58 +0000 (20:42 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Mar 2020 10:05:17 +0000 (10:05 +0000)
The release method will undo what we did at creation, and so we
shouldn't care if we have pages or not. Fixes a small leak in the
mock_phys selftest.

Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200305204258.216302-1-matthew.auld@intel.com
drivers/gpu/drm/i915/gem/i915_gem_phys.c

index b07bb40..698e224 100644 (file)
@@ -194,10 +194,11 @@ int i915_gem_object_attach_phys(struct drm_i915_gem_object *obj, int align)
        /* Perma-pin (until release) the physical set of pages */
        __i915_gem_object_pin_pages(obj);
 
-       if (!IS_ERR_OR_NULL(pages)) {
+       if (!IS_ERR_OR_NULL(pages))
                i915_gem_shmem_ops.put_pages(obj, pages);
-               i915_gem_object_release_memory_region(obj);
-       }
+
+       i915_gem_object_release_memory_region(obj);
+
        mutex_unlock(&obj->mm.lock);
        return 0;