drm/i915: Only apply legacy PDE overflow detection to 3lvl machines
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Feb 2017 14:14:55 +0000 (14:14 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 20 Feb 2017 09:42:59 +0000 (09:42 +0000)
Prevent the overflow check from firing on machines with the full 4lvl
page tables, that are not restricted to GEN8_LEGACY_PDES.

v2: Also fix the off-by-one in the compare

Fixes: 894ccebee2b0 ("drm/i915: Micro-optimise gen8_ppgtt_insert_entries()")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170217141455.19877-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 47a38272f54c36f558c7ef304c542df2996e28b2..a5162cbc0ea022ffaac9f9236f4ada938601ad4f 100644 (file)
@@ -854,7 +854,8 @@ gen8_ppgtt_insert_pte_entries(struct i915_hw_ppgtt *ppgtt,
                                        break;
                                }
 
-                               GEM_BUG_ON(pdpe > GEN8_LEGACY_PDPES);
+                               GEM_BUG_ON(!i915_vm_is_48bit(&ppgtt->base) &&
+                                          pdpe >= GEN8_LEGACY_PDPES);
                                pd = pdp->page_directory[pdpe];
                                pde = 0;
                        }