|
@@ -4635,7 +4635,6 @@ i915_gem_inactive_shrink(struct shrinker *shrinker, struct shrink_control *sc)
|
|
|
struct drm_i915_private,
|
|
|
mm.inactive_shrinker);
|
|
|
struct drm_device *dev = dev_priv->dev;
|
|
|
- struct i915_address_space *vm = &dev_priv->gtt.base;
|
|
|
struct drm_i915_gem_object *obj;
|
|
|
int nr_to_scan = sc->nr_to_scan;
|
|
|
bool unlock = true;
|
|
@@ -4664,9 +4663,14 @@ i915_gem_inactive_shrink(struct shrinker *shrinker, struct shrink_control *sc)
|
|
|
list_for_each_entry(obj, &dev_priv->mm.unbound_list, global_list)
|
|
|
if (obj->pages_pin_count == 0)
|
|
|
cnt += obj->base.size >> PAGE_SHIFT;
|
|
|
- list_for_each_entry(obj, &vm->inactive_list, mm_list)
|
|
|
+
|
|
|
+ list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
|
|
|
+ if (obj->active)
|
|
|
+ continue;
|
|
|
+
|
|
|
if (obj->pin_count == 0 && obj->pages_pin_count == 0)
|
|
|
cnt += obj->base.size >> PAGE_SHIFT;
|
|
|
+ }
|
|
|
|
|
|
if (unlock)
|
|
|
mutex_unlock(&dev->struct_mutex);
|