/* PPGTT pdes are stolen from global gtt ptes, so shrink the
                 * aperture accordingly when using aliasing ppgtt. */
                gtt_size -= I915_PPGTT_PD_ENTRIES*PAGE_SIZE;
-               /* For paranoia keep the guard page in between. */
-               gtt_size -= PAGE_SIZE;
 
                i915_gem_init_global_gtt(dev, 0, mappable_size, gtt_size);
 
                 * aperture.
                 */
                i915_gem_init_global_gtt(dev, 0, mappable_size,
-                                        gtt_size - PAGE_SIZE);
+                                        gtt_size);
        }
 
        ret = i915_gem_init_hw(dev);
 
 {
        drm_i915_private_t *dev_priv = dev->dev_private;
 
-       drm_mm_init(&dev_priv->mm.gtt_space, start, end - start);
+       /* Substract the guard page ... */
+       drm_mm_init(&dev_priv->mm.gtt_space, start, end - start - PAGE_SIZE);
 
        dev_priv->mm.gtt_start = start;
        dev_priv->mm.gtt_mappable_end = mappable_end;
        dev_priv->mm.gtt_total = end - start;
        dev_priv->mm.mappable_gtt_total = min(end, mappable_end) - start;
 
-       /* Take over this portion of the GTT */
+       /* ... but ensure that we clear the entire range. */
        intel_gtt_clear_range(start / PAGE_SIZE, (end-start) / PAGE_SIZE);
 }