]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Catch attempting to use the aliasing_gtt's drm_mm
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 15 Jan 2017 13:47:46 +0000 (13:47 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 16 Jan 2017 12:21:19 +0000 (12:21 +0000)
The aliasing_gtt is just that, an alias of the global GTT. We do not
populate it directly, instead we always use the global GTT. Catch any
attempt to incorrectly allocate ranges from the aliasing_gtt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170115134746.29325-1-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 4c88745b60783bc196d8b49dc1a4bd1a73527220..786229137f915757cdbc6dd88ed60d7728ff43d3 100644 (file)
@@ -3626,6 +3626,7 @@ int i915_gem_gtt_reserve(struct i915_address_space *vm,
        GEM_BUG_ON(!IS_ALIGNED(size, I915_GTT_PAGE_SIZE));
        GEM_BUG_ON(!IS_ALIGNED(offset, I915_GTT_MIN_ALIGNMENT));
        GEM_BUG_ON(range_overflows(offset, size, vm->total));
+       GEM_BUG_ON(vm == &vm->i915->mm.aliasing_ppgtt->base);
 
        node->size = size;
        node->start = offset;
@@ -3718,6 +3719,7 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,
        GEM_BUG_ON(start >= end);
        GEM_BUG_ON(start > 0  && !IS_ALIGNED(start, I915_GTT_PAGE_SIZE));
        GEM_BUG_ON(end < U64_MAX && !IS_ALIGNED(end, I915_GTT_PAGE_SIZE));
+       GEM_BUG_ON(vm == &vm->i915->mm.aliasing_ppgtt->base);
 
        if (unlikely(range_overflows(start, size, end)))
                return -ENOSPC;