From: Chris Wilson Date: Fri, 1 Jun 2018 09:35:50 +0000 (+0100) Subject: drm/i915/gtt: Don't restore the non-existent PDE for GGTT X-Git-Tag: for-linus-20180825~57^2~42^2~38 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3df845e7528b4f337e5cf91f3fd75610a646b259;p=linux-block.git drm/i915/gtt: Don't restore the non-existent PDE for GGTT On resume, we have to rewrite all the PDE entries for gen7 ppgtts. If we switch on full-ppgtt, there is then one address space with no PDE, the GGTT. Currently under aliasing-ppgtt, the GGTT address space does have an associated ppgtt and so the restore works just fine. We would have a similar problem if we tried disabling aliasing-ppgtt (i915.enable_ppgtt=0). So skip the empty ppgtt, as being non-existent it doesn't need restoring. Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20180601093554.13083-2-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen --- diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index ec60be48919b..d032069819cc 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -3665,6 +3665,8 @@ void i915_gem_restore_gtt_mappings(struct drm_i915_private *dev_priv) ppgtt = dev_priv->mm.aliasing_ppgtt; else ppgtt = i915_vm_to_ppgtt(vm); + if (!ppgtt) + continue; gen6_write_page_range(ppgtt, 0, ppgtt->base.total); }