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: Chris Wilson <chris@chris-wilson.co.uk> CC: Dave Airlie <airlied@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
76cff81ad1
commit
d78b47b9a5
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user