OSDN Git Service

intel: silence valgrind warnings for unsynchronized maps
authorChia-I Wu <olvaffe@gmail.com>
Wed, 10 Jul 2013 02:49:59 +0000 (10:49 +0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 16 Jul 2013 13:23:39 +0000 (15:23 +0200)
Mark the address ranges as accessible with VALGRIND_MAKE_MEM_DEFINED.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
intel/intel_bufmgr_gem.c

index a51e3f3..f98f7a7 100644 (file)
@@ -1322,6 +1322,7 @@ int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
 int drm_intel_gem_bo_map_unsynchronized(drm_intel_bo *bo)
 {
        drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
+       drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
        int ret;
 
        /* If the CPU cache isn't coherent with the GTT, then use a
@@ -1335,7 +1336,13 @@ int drm_intel_gem_bo_map_unsynchronized(drm_intel_bo *bo)
                return drm_intel_gem_bo_map_gtt(bo);
 
        pthread_mutex_lock(&bufmgr_gem->lock);
+
        ret = map_gtt(bo);
+       if (ret == 0) {
+               drm_intel_gem_bo_mark_mmaps_incoherent(bo);
+               VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size));
+       }
+
        pthread_mutex_unlock(&bufmgr_gem->lock);
 
        return ret;