diff options
author | Dave Airlie <airlied@redhat.com> | 2012-07-31 15:58:13 +1000 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-08-05 22:53:59 +0200 |
commit | f00f979145756e39b5512d7d4e4050534d1c3d7f (patch) | |
tree | 0c061447ef0dd09e95b2c0e656b7a1d8bff95dd1 | |
parent | e47e9ad9186ff265ddf316d25cd4942bab019d57 (diff) | |
download | op-kernel-dev-f00f979145756e39b5512d7d4e4050534d1c3d7f.zip op-kernel-dev-f00f979145756e39b5512d7d4e4050534d1c3d7f.tar.gz |
i915: don't map imported dma-bufs for dmar.
The exporter should have given us pages in the correct place, avoid
the prepare object mapping phase on dmar systems.
This fixes an oops on a GM45/R600 machine, when running the intel/radeon
tests.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 9fd25a4..ee9b68f 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -361,7 +361,8 @@ int i915_gem_gtt_prepare_object(struct drm_i915_gem_object *obj) struct drm_device *dev = obj->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; - if (dev_priv->mm.gtt->needs_dmar) + /* don't map imported dma buf objects */ + if (dev_priv->mm.gtt->needs_dmar && !obj->sg_table) return intel_gtt_map_memory(obj->pages, obj->base.size >> PAGE_SHIFT, &obj->sg_list, |