We want to reload the PDP (and flush the TLB) when the addresses are
changed.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c 
b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 04636760fb38..0a28913b06af 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1076,7 +1076,6 @@ static int gen8_ppgtt_alloc_pdp(struct i915_address_space 
*vm,
                                struct i915_page_directory_pointer *pdp,
                                u64 start, u64 length)
 {
-       struct i915_hw_ppgtt *ppgtt = i915_vm_to_ppgtt(vm);
        struct i915_page_directory *pd;
        u64 from = start;
        unsigned int pdpe;
@@ -1091,6 +1090,8 @@ static int gen8_ppgtt_alloc_pdp(struct i915_address_space 
*vm,
                        gen8_initialize_pd(vm, pd);
                        gen8_ppgtt_set_pdpe(vm, pdp, pd, pdpe);
                        pdp->used_pdpes++;
+
+                       mark_tlbs_dirty(i915_vm_to_ppgtt(vm));
                }
 
                ret = gen8_ppgtt_alloc_pd(vm, pd, start, length);
@@ -1102,7 +1103,6 @@ static int gen8_ppgtt_alloc_pdp(struct i915_address_space 
*vm,
                }
        }
 
-       mark_tlbs_dirty(ppgtt);
        return 0;
 
 unwind:
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to