From 796cb1e9d5b6bf0b7e4c5ef929a77fc5b0c651a1 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Wed, 21 Apr 2021 17:23:57 +0200 Subject: [PATCH] v3dv: check returned values Check if v3dv_ioctl() or v3dv_bo_map() fail, and print a proper error message. This check happens in the rest of the code, so it makes sense to apply here too. Fixes CID#1468162 "Unchecked return value (CHECKED_RETURN)". v2: - Fix message error (Iago) Reviewed-by: Iago Toral Quiroga Signed-off-by: Juan A. Suarez Romero Part-of: --- src/broadcom/vulkan/v3dv_device.c | 4 +++- src/broadcom/vulkan/v3dv_queue.c | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 496f93e28be..b6c2c99369f 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -1546,7 +1546,9 @@ device_free_wsi_dumb(int32_t display_fd, int32_t dumb_handle) struct drm_mode_destroy_dumb destroy_dumb = { .handle = dumb_handle, }; - v3dv_ioctl(display_fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_dumb); + if (v3dv_ioctl(display_fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_dumb)) { + fprintf(stderr, "destroy dumb object %d: %s\n", dumb_handle, strerror(errno)); + } } static void diff --git a/src/broadcom/vulkan/v3dv_queue.c b/src/broadcom/vulkan/v3dv_queue.c index 5698981673a..d26056530ef 100644 --- a/src/broadcom/vulkan/v3dv_queue.c +++ b/src/broadcom/vulkan/v3dv_queue.c @@ -46,7 +46,12 @@ v3dv_clif_dump(struct v3dv_device *device, char *name = ralloc_asprintf(NULL, "%s_0x%x", bo->name, bo->offset); - v3dv_bo_map(device, bo, bo->size); + bool ok = v3dv_bo_map(device, bo, bo->size); + if (!ok) { + fprintf(stderr, "failed to map BO for clif_dump.\n"); + ralloc_free(name); + goto free_clif; + } clif_dump_add_bo(clif, name, bo->offset, bo->size, bo->map); ralloc_free(name); @@ -54,6 +59,7 @@ v3dv_clif_dump(struct v3dv_device *device, clif_dump(clif, submit); + free_clif: clif_dump_destroy(clif); }