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: 4abf0837cd ("anv: Add support for new MMAP_OFFSET ioctl.")

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7381>
(cherry picked from commit b5e2c58ad8)
This commit is contained in:
Marcin Ślusarz 2020-10-21 17:51:22 +02:00 committed by Dylan Baker
parent 8f766d37eb
commit 5e5060324b
2 changed files with 10 additions and 6 deletions

View file

@ -5521,7 +5521,7 @@
"description": "anv: always annotate memory returned from anv_gem_mmap",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "4abf0837cdb14b10a58d28766d5c1d3698d8a6d8"
},

View file

@ -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);
}