diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 341f7f025828..e02afd8728f1 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1751,7 +1751,6 @@ int i915_gem_mmap_gtt_version(void) static inline struct i915_ggtt_view compute_partial_view(struct drm_i915_gem_object *obj, - struct vm_area_struct *area, pgoff_t page_offset, unsigned int chunk) { @@ -1765,7 +1764,7 @@ compute_partial_view(struct drm_i915_gem_object *obj, view.params.partial.offset = rounddown(page_offset, chunk); view.params.partial.size = min_t(unsigned int, chunk, - vma_pages(area) - view.params.partial.offset); + (obj->base.size >> PAGE_SHIFT) - view.params.partial.offset); /* If the partial covers the entire object, just create a normal VMA. */ if (chunk >= obj->base.size >> PAGE_SHIFT) @@ -1852,8 +1851,7 @@ int i915_gem_fault(struct vm_area_struct *area, struct vm_fault *vmf) if (IS_ERR(vma)) { /* Use a partial view if it is bigger than available space */ struct i915_ggtt_view view = - compute_partial_view(obj, area, - page_offset, MIN_CHUNK_PAGES); + compute_partial_view(obj, page_offset, MIN_CHUNK_PAGES); /* Userspace is now writing through an untracked VMA, abandon * all hope that the hardware is able to track future writes.