Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d78b47b9 authored by Chris Wilson's avatar Chris Wilson Committed by Eric Anholt
Browse files

drm/i915: detach/attach get/put pages symmetry



After performing an operation over the page list for a buffer retrieved by
i915_gem_object_get_pages() the pages need to be returned with
i915_gem_object_put_pages(). This was not being observed for the phys
objects which were thus leaking references to their backing pages.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
CC: Dave Airlie <airlied@gmail.com>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 76cff81a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4312,6 +4312,8 @@ void i915_gem_detach_phys_object(struct drm_device *dev,
	}
	drm_clflush_pages(obj_priv->pages, page_count);
	drm_agp_chipset_flush(dev);

	i915_gem_object_put_pages(obj);
out:
	obj_priv->phys_obj->cur_obj = NULL;
	obj_priv->phys_obj = NULL;
@@ -4369,6 +4371,8 @@ i915_gem_attach_phys_object(struct drm_device *dev,
		kunmap_atomic(src, KM_USER0);
	}

	i915_gem_object_put_pages(obj);

	return 0;
out:
	return ret;