From: Ville Syrjälä Date: Wed, 12 Mar 2014 17:32:27 +0000 (+0200) Subject: drm/i915: Unbind all vmas whose new cache_level doesn't agree with the neighbours X-Git-Tag: v3.15-rc1~51^2~18^2~45 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=3ddffb7b8a7e296af4ff22b953836ac6bc484b76;p=karo-tx-linux.git drm/i915: Unbind all vmas whose new cache_level doesn't agree with the neighbours When we change the cache_level for an object we need to make sure we don't put differing types of snoopable memory too close to each other on non-LLC machines. Currently i915_gem_object_set_cache_level() will stop looking when it finds just one vma that has such a conflict. Drop the bogus break statement to make sure it will unbind all vmas which need to be moved around to avoid the conflict. I suppose this is a theoretical issue as currently we don't enable ppgtt on non-LLC machines, so each object can only have one vma. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 92b0b4164b1d..70384c8d1404 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3482,8 +3482,6 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, ret = i915_vma_unbind(vma); if (ret) return ret; - - break; } }