diff options
author | Samuel Iglesias Gonsálvez <[email protected]> | 2017-05-03 08:02:21 +0200 |
---|---|---|
committer | Andres Gomez <[email protected]> | 2017-05-12 21:54:55 +0300 |
commit | ce336813f8f1972c0320eb14cc48960701d5f5f2 (patch) | |
tree | 7b720ba57eec8fdbfbe2b27b0e5e3b4971a210d5 /src/intel | |
parent | cda9c9fb480526b0b531d2c72e6d39c2387c10d7 (diff) |
anv: anv_gem_mmap() returns MAP_FAILED as mapping error
Take it into account when checking if the mapping failed.
v2:
- Remove map == NULL and its related comment (Emil)
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Fixes: 6f3e3c715a7 ("vk/allocator: Add a BO pool")
Fixes: 9919a2d34de ("anv/image: Memset hiz surfaces to 0 when binding memory")
Cc: "17.0 17.1" <[email protected]>
(cherry picked from commit b546c9d318731b988aa3d8c4e4735cdbb596cfbf)
Squashed with commit:
anv: fix anv_gem_mmap comment to not mention NULL
The function cannot return NULL, update the comment accordingly.
Fixes: b546c9d ("anv: anv_gem_mmap() returns MAP_FAILED as mapping error")
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
(cherry picked from commit 9d2aa6e5067752efbc0acbd728bc0bde49aefb61)
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/anv_allocator.c | 2 | ||||
-rw-r--r-- | src/intel/vulkan/anv_image.c | 10 |
2 files changed, 5 insertions, 7 deletions
diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index 45c663b6707..4bea1f67316 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -859,7 +859,7 @@ anv_bo_pool_alloc(struct anv_bo_pool *pool, struct anv_bo *bo, uint32_t size) assert(new_bo.size == pow2_size); new_bo.map = anv_gem_mmap(pool->device, new_bo.gem_handle, 0, pow2_size, 0); - if (new_bo.map == NULL) { + if (new_bo.map == MAP_FAILED) { anv_gem_close(pool->device, new_bo.gem_handle); return vk_error(VK_ERROR_MEMORY_MAP_FAILED); } diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index a3e3a091638..aaf0b54d866 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -26,6 +26,7 @@ #include <string.h> #include <unistd.h> #include <fcntl.h> +#include <sys/mman.h> #include "anv_private.h" #include "util/debug.h" @@ -358,7 +359,7 @@ VkResult anv_BindImageMemory( if (image->aux_surface.isl.size > 0) { /* The offset and size must be a multiple of 4K or else the - * anv_gem_mmap call below will return NULL. + * anv_gem_mmap call below will fail. */ assert((image->offset + image->aux_surface.offset) % 4096 == 0); assert(image->aux_surface.isl.size % 4096 == 0); @@ -374,11 +375,8 @@ VkResult anv_BindImageMemory( image->aux_surface.isl.size, device->info.has_llc ? 0 : I915_MMAP_WC); - /* If anv_gem_mmap returns NULL, it's likely that the kernel was - * not able to find space on the host to create a proper mapping. - */ - if (map == NULL) - return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); + if (map == MAP_FAILED) + return vk_error(VK_ERROR_MEMORY_MAP_FAILED); memset(map, 0, image->aux_surface.isl.size); |