diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c index 5741b58d186c5aa86e5feaeb807c6c031f94b589..3c1280ec7ff648979ea96a17325a5aa6924e688d 100644 --- a/drivers/gpu/drm/i915/i915_gem_evict.c +++ b/drivers/gpu/drm/i915/i915_gem_evict.c @@ -183,9 +183,11 @@ i915_gem_evict_something(struct drm_device *dev, struct i915_address_space *vm, if (pass++ == 0) { struct drm_i915_private *dev_priv = to_i915(dev); - ret = switch_to_pinned_context(dev_priv); - if (ret) - return ret; + if (i915_is_ggtt(vm)) { + ret = switch_to_pinned_context(dev_priv); + if (ret) + return ret; + } ret = i915_gem_wait_for_idle(dev_priv); if (ret) @@ -300,9 +302,11 @@ int i915_gem_evict_vm(struct i915_address_space *vm, bool do_idle) if (do_idle) { struct drm_i915_private *dev_priv = to_i915(vm->dev); - ret = switch_to_pinned_context(dev_priv); - if (ret) - return ret; + if (i915_is_ggtt(vm)) { + ret = switch_to_pinned_context(dev_priv); + if (ret) + return ret; + } ret = i915_gem_wait_for_idle(dev_priv); if (ret)