aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-08-06 09:04:51 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-08-13 08:23:31 -0400
commit896ab1a5d54269b463a24194c2e4a369103b46d8 (patch)
treeb741b45a98a29f50deea1630d4039ed3fa92edea /drivers/gpu/drm/i915/i915_gem.c
parent6c5566a82c6fb1da9e13a294f23d4cd85a08cb30 (diff)
drm/i915: Fix up checks for aliasing ppgtt
A subsequent patch will no longer initialize the aliasing ppgtt if we have full ppgtt enabled, since we simply don't need that any more. Unfortunately a few places check for the aliasing ppgtt instead of checking for ppgtt in general. Fix them up. One special case are the gtt offset and size macros, which have some code to remap the aliasing ppgtt to the global gtt. The aliasing ppgtt is _not_ a logical address space, so passing that in as the vm is plain and simple a bug. So just WARN about it and carry on - we have a gracefully fall-through anyway if we can't find the vma. Reviewed-by: Michel Thierry <michel.thierry@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.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c8404a439502..6a7795097017 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5106,9 +5106,7 @@ unsigned long i915_gem_obj_offset(struct drm_i915_gem_object *o,
5106 struct drm_i915_private *dev_priv = o->base.dev->dev_private; 5106 struct drm_i915_private *dev_priv = o->base.dev->dev_private;
5107 struct i915_vma *vma; 5107 struct i915_vma *vma;
5108 5108
5109 if (!dev_priv->mm.aliasing_ppgtt || 5109 WARN_ON(vm == &dev_priv->mm.aliasing_ppgtt->base);
5110 vm == &dev_priv->mm.aliasing_ppgtt->base)
5111 vm = &dev_priv->gtt.base;
5112 5110
5113 list_for_each_entry(vma, &o->vma_list, vma_link) { 5111 list_for_each_entry(vma, &o->vma_list, vma_link) {
5114 if (vma->vm == vm) 5112 if (vma->vm == vm)
@@ -5149,9 +5147,7 @@ unsigned long i915_gem_obj_size(struct drm_i915_gem_object *o,
5149 struct drm_i915_private *dev_priv = o->base.dev->dev_private; 5147 struct drm_i915_private *dev_priv = o->base.dev->dev_private;
5150 struct i915_vma *vma; 5148 struct i915_vma *vma;
5151 5149
5152 if (!dev_priv->mm.aliasing_ppgtt || 5150 WARN_ON(vm == &dev_priv->mm.aliasing_ppgtt->base);
5153 vm == &dev_priv->mm.aliasing_ppgtt->base)
5154 vm = &dev_priv->gtt.base;
5155 5151
5156 BUG_ON(list_empty(&o->vma_list)); 5152 BUG_ON(list_empty(&o->vma_list));
5157 5153