aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2014-03-12 19:32:27 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-03-13 12:22:44 +0100
commit3ddffb7b8a7e296af4ff22b953836ac6bc484b76 (patch)
tree87c0940704d634ff67bfbc528a26cc523ac798a8 /drivers/gpu/drm/i915/i915_gem.c
parentdrm/i915: Drop WARN_ON(flags) from ppgtt_bind_vma() (diff)
downloadlinux-dev-3ddffb7b8a7e296af4ff22b953836ac6bc484b76.tar.xz
linux-dev-3ddffb7b8a7e296af4ff22b953836ac6bc484b76.zip
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>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c2
1 files changed, 0 insertions, 2 deletions
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;
}
}