drm/i915: Unbind all vmas whose new cache_level doesn't agree with the neighbours
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 12 Mar 2014 17:32:27 +0000 (19:32 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 13 Mar 2014 11:22:44 +0000 (12:22 +0100)
commit3ddffb7b8a7e296af4ff22b953836ac6bc484b76
tree87c0940704d634ff67bfbc528a26cc523ac798a8
parentc5139450c6a8b309e4e6f25a2a5bcaceddf19b47
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ä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c