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>
        if (mem->page_count == 0)
                return 0;
 
+       intel_gtt_clear_range(pg_start, mem->page_count);
+
        if (intel_private.base.needs_dmar) {
                intel_gtt_unmap_memory(mem->sg_list, mem->num_sg);
                mem->sg_list = NULL;
                mem->num_sg = 0;
        }
 
-       intel_gtt_clear_range(pg_start, mem->page_count);
-
        return 0;
 }