/* It is vital that we remove the page mapping if we have mapped a tiled object through the GTT and then lose the fence register due to resource pressure. Similarly if the object has been moved out of the aperture, than pages mapped into userspace must be revoked. Removing the mapping will then trigger a page fault on the next user access, allowing fixup by i915_gem_fault().  */
void i915_gem_release_mmap(struct drm_gem_object *obj)
/* It is vital that we remove the page mapping if we have mapped a tiled object through the GTT and then lose the fence register due to resource pressure. Similarly if the object has been moved out of the aperture, than pages mapped into userspace must be revoked. Removing the mapping will then trigger a page fault on the next user access, allowing fixup by i915_gem_fault().  */
void i915_gem_release_mmap(struct drm_gem_object *obj)
{
	struct drm_device *dev = obj->dev;
	struct drm_i915_gem_object *obj_priv = obj->driver_private;
	if (dev->dev_mapping)
		unmap_mapping_range(dev->dev_mapping,
				    obj_priv->mmap_offset, obj->size, 1);
}