Module: Mesa
Branch: master
Commit: b5e2c58ad865be4d88e4d29b5461015a82633e78
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5e2c58ad865be4d88e4d29b5461015a82633e78

Author: Marcin Ślusarz <[email protected]>
Date:   Wed Oct 21 17:51:22 2020 +0200

anv: always annotate memory returned from anv_gem_mmap

anv_bo_pool_alloc expects that the memory returned by and_gem_mmap
was annotated using VALGRIND_MALLOCLIKE_BLOCK, but anv_gem_mmap_offset
didn't do that. Move annotation from anv_gem_mmap_legacy to common
code.

Fixes: 4abf0837cdb ("anv: Add support for new MMAP_OFFSET ioctl.")

Signed-off-by: Marcin Ślusarz <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7381>

---

 src/intel/vulkan/anv_gem.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c
index fdc780cbb46..81e22428e18 100644
--- a/src/intel/vulkan/anv_gem.c
+++ b/src/intel/vulkan/anv_gem.c
@@ -105,7 +105,6 @@ anv_gem_mmap_legacy(struct anv_device *device, uint32_t 
gem_handle,
    if (ret != 0)
       return MAP_FAILED;
 
-   VG(VALGRIND_MALLOCLIKE_BLOCK(gem_mmap.addr_ptr, gem_mmap.size, 0, 1));
    return (void *)(uintptr_t) gem_mmap.addr_ptr;
 }
 
@@ -116,10 +115,16 @@ void*
 anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
              uint64_t offset, uint64_t size, uint32_t flags)
 {
+   void *map;
    if (device->physical->has_mmap_offset)
-      return anv_gem_mmap_offset(device, gem_handle, offset, size, flags);
+      map = anv_gem_mmap_offset(device, gem_handle, offset, size, flags);
    else
-      return anv_gem_mmap_legacy(device, gem_handle, offset, size, flags);
+      map = anv_gem_mmap_legacy(device, gem_handle, offset, size, flags);
+
+   if (map != MAP_FAILED)
+      VG(VALGRIND_MALLOCLIKE_BLOCK(map, size, 0, 1));
+
+   return map;
 }
 
 /* This is just a wrapper around munmap, but it also notifies valgrind that
@@ -128,8 +133,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
 void
 anv_gem_munmap(struct anv_device *device, void *p, uint64_t size)
 {
-   if (!device->physical->has_mmap_offset)
-      VG(VALGRIND_FREELIKE_BLOCK(p, 0));
+   VG(VALGRIND_FREELIKE_BLOCK(p, 0));
    munmap(p, size);
 }
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to