--- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -5258,6 +5258,11 @@ i915_gem_shrinker_scan(struct shrinker * if (!i915_gem_shrinker_lock(dev, &unlock)) return SHRINK_STOP; + if (HAS_RUNTIME_PM(dev_priv->dev) && dev_priv->pm.suspended) + { + freed = SHRINK_STOP; + goto out; + } freed = i915_gem_shrink(dev_priv, sc->nr_to_scan, I915_SHRINK_BOUND | @@ -5268,6 +5273,8 @@ i915_gem_shrinker_scan(struct shrinker * sc->nr_to_scan - freed, I915_SHRINK_BOUND | I915_SHRINK_UNBOUND); + +out: if (unlock) mutex_unlock(&dev->struct_mutex);