diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c index 2d4b207bf0f..55f8534d0ea 100644 --- a/src/intel/vulkan/anv_gem.c +++ b/src/intel/vulkan/anv_gem.c @@ -787,8 +787,13 @@ anv_i915_query(int fd, uint64_t query_id, void *buffer, }; int ret = intel_ioctl(fd, DRM_IOCTL_I915_QUERY, &args); + if (ret != 0) + return -errno; + else if (item.length < 0) + return item.length; + *buffer_len = item.length; - return ret; + return 0; } struct drm_i915_query_engine_info * @@ -796,14 +801,14 @@ anv_gem_get_engine_info(int fd) { int32_t length = 0; int ret = anv_i915_query(fd, DRM_I915_QUERY_ENGINE_INFO, NULL, &length); - if (ret == -1) + if (ret < 0) return NULL; struct drm_i915_query_engine_info *info = calloc(1, length); ret = anv_i915_query(fd, DRM_I915_QUERY_ENGINE_INFO, info, &length); assert(ret == 0); - if (ret != 0) { + if (ret < 0) { free(info); return NULL; }