From 05bc4500ad8363a6ec5894cbdc6c293e9079645e Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Mon, 29 Aug 2022 15:48:44 +0200 Subject: [PATCH] nouveau/ws: add a bo unmap helper function Part-of: --- src/nouveau/vulkan/nvk_device_memory.c | 6 +++--- src/nouveau/winsys/nouveau_bo.h | 8 ++++++++ src/nouveau/winsys/nouveau_push.c | 4 ++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/nouveau/vulkan/nvk_device_memory.c b/src/nouveau/vulkan/nvk_device_memory.c index 40869e5fea1..0caf0038851 100644 --- a/src/nouveau/vulkan/nvk_device_memory.c +++ b/src/nouveau/vulkan/nvk_device_memory.c @@ -118,7 +118,7 @@ nvk_allocate_memory(struct nvk_device *device, goto fail_bo; } memset(map, 0, mem->bo->size); - munmap(map, mem->bo->size); + nouveau_ws_bo_unmap(mem->bo, map); } else { VkResult result = zero_vram(device, mem->bo); if (result != VK_SUCCESS) @@ -146,7 +146,7 @@ nvk_free_memory(struct nvk_device *device, const VkAllocationCallbacks *pAllocator) { if (mem->map) - munmap(mem->map, mem->bo->size); + nouveau_ws_bo_unmap(mem->bo, mem->map); simple_mtx_lock(&device->memory_objects_lock); list_del(&mem->link); @@ -255,7 +255,7 @@ nvk_UnmapMemory( if (mem == NULL) return; - munmap(mem->map, mem->bo->size); + nouveau_ws_bo_unmap(mem->bo, mem->map); mem->map = NULL; } diff --git a/src/nouveau/winsys/nouveau_bo.h b/src/nouveau/winsys/nouveau_bo.h index 7342706f76e..8787474254c 100644 --- a/src/nouveau/winsys/nouveau_bo.h +++ b/src/nouveau/winsys/nouveau_bo.h @@ -5,6 +5,8 @@ #include "nouveau_device.h" +#include + enum nouveau_ws_bo_flags { /* vram or gart depending on GPU */ NOUVEAU_WS_BO_LOCAL = 0 << 0, @@ -46,4 +48,10 @@ nouveau_ws_bo_ref(struct nouveau_ws_bo *bo) bo->refcnt++; } +static inline void +nouveau_ws_bo_unmap(struct nouveau_ws_bo *bo, void *ptr) +{ + munmap(ptr, bo->size); +} + #endif diff --git a/src/nouveau/winsys/nouveau_push.c b/src/nouveau/winsys/nouveau_push.c index 275c15b415b..fcf1ea3848c 100644 --- a/src/nouveau/winsys/nouveau_push.c +++ b/src/nouveau/winsys/nouveau_push.c @@ -55,7 +55,7 @@ nouveau_ws_push_new(struct nouveau_ws_device *dev, uint64_t size) return push; fail_alloc: - munmap(map, bo->size); + nouveau_ws_bo_unmap(bo, map); fail_map: nouveau_ws_bo_destroy(bo); fail_bo: @@ -78,7 +78,7 @@ nouveau_ws_push_destroy(struct nouveau_ws_push *push) { util_dynarray_fini(&push->bos); if (push->bo) { - munmap(push->orig_map, push->bo->size); + nouveau_ws_bo_unmap(push->bo, push->orig_map); nouveau_ws_bo_destroy(push->bo); } }