OSDN Git Service

drm/i915/gtt: Correct unshifted 'from' for gen8_ppgtt_alloc errors
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 19 Jul 2019 13:15:24 +0000 (14:15 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 19 Jul 2019 16:15:40 +0000 (17:15 +0100)
Since the underlying __gen8_ppgtt_clear takes the shifted address, we
must remember to provide it with the shifted original start address.

Reported-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Tested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190719131524.827-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c

index 220aba5..031bcd2 100644 (file)
@@ -1103,7 +1103,7 @@ out:
 static int gen8_ppgtt_alloc(struct i915_address_space *vm,
                            u64 start, u64 length)
 {
-       u64 from = start;
+       u64 from;
        int err;
 
        GEM_BUG_ON(!IS_ALIGNED(start, BIT_ULL(GEN8_PTE_SHIFT)));
@@ -1112,6 +1112,7 @@ static int gen8_ppgtt_alloc(struct i915_address_space *vm,
        start >>= GEN8_PTE_SHIFT;
        length >>= GEN8_PTE_SHIFT;
        GEM_BUG_ON(length == 0);
+       from = start;
 
        err = __gen8_ppgtt_alloc(vm, i915_vm_to_ppgtt(vm)->pd,
                                 &start, start + length, vm->top);