diff mbox

[libdrm] intel: silence valgrind warnings for unsynchronized maps

Message ID 1373424599-8583-1-git-send-email-olvaffe@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chia-I Wu July 10, 2013, 2:49 a.m. UTC
Mark the address ranges as accessible with VALGRIND_MAKE_MEM_DEFINED.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
---
 intel/intel_bufmgr_gem.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Daniel Vetter July 16, 2013, 1:24 p.m. UTC | #1
On Wed, Jul 10, 2013 at 10:49:59AM +0800, Chia-I Wu wrote:
> Mark the address ranges as accessible with VALGRIND_MAKE_MEM_DEFINED.
> 
> Signed-off-by: Chia-I Wu <olvaffe@gmail.com>

lgtm. Applied to mater, thanks for the patch.
-Daniel

> ---
>  intel/intel_bufmgr_gem.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
> index a51e3f3..f98f7a7 100644
> --- a/intel/intel_bufmgr_gem.c
> +++ b/intel/intel_bufmgr_gem.c
> @@ -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;
> -- 
> 1.8.3.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index a51e3f3..f98f7a7 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -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;