aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2011-01-11 20:39:48 -0500
committerDave Airlie <airlied@gmail.com>2011-01-11 20:39:48 -0500
commitd15eda5c6edff4987af6f4423af0bab0c3251e74 (patch)
tree87400cdc5f74d1258b6456b88beaf6fc3dc5f97a
parenta46f3108b1cd8bf11d46ac8a5f30df6f6dbdf738 (diff)
i915/gtt: fix ordering causing DMAR errors on object teardown.
Previous to the last GTT rework we always rewrote the GTT then unmapped the object, somehow this got reversed in the rework in 2.6.37-rc5 timeframe. This fix needs to go to stable in an alternate form since the code changed. This fixes DMAR reports on my Ironlake HP2540p. Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/char/agp/intel-gtt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index b7c0c7ee67c8..e921b693412b 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -1000,14 +1000,14 @@ static int intel_fake_agp_remove_entries(struct agp_memory *mem,
1000 if (mem->page_count == 0) 1000 if (mem->page_count == 0)
1001 return 0; 1001 return 0;
1002 1002
1003 intel_gtt_clear_range(pg_start, mem->page_count);
1004
1003 if (intel_private.base.needs_dmar) { 1005 if (intel_private.base.needs_dmar) {
1004 intel_gtt_unmap_memory(mem->sg_list, mem->num_sg); 1006 intel_gtt_unmap_memory(mem->sg_list, mem->num_sg);
1005 mem->sg_list = NULL; 1007 mem->sg_list = NULL;
1006 mem->num_sg = 0; 1008 mem->num_sg = 0;
1007 } 1009 }
1008 1010
1009 intel_gtt_clear_range(pg_start, mem->page_count);
1010
1011 return 0; 1011 return 0;
1012} 1012}
1013 1013