summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@intel.com>2015-03-31 17:06:29 +0800
committerZhigang Gong <zhigang.gong@intel.com>2015-04-13 16:11:34 +0800
commit2fe331b7b402d6825baf2102532a1b4e3c21b1df (patch)
treea11b06c710c284761dad433f259e91746b070760
parente7504a7678615ae27c8f19d72709c46993db1dfa (diff)
GBE: refine error handling for private libva buffer sharing extension.
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com> Reviewed-by: "Yang, Rong R" <rong.r.yang@intel.com>
-rw-r--r--src/cl_mem.c4
-rw-r--r--src/intel/intel_driver.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/src/cl_mem.c b/src/cl_mem.c
index b41ec141..471df34f 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -1976,6 +1976,10 @@ LOCAL cl_mem cl_mem_new_libva_buffer(cl_context ctx,
size_t sz = 0;
mem->bo = cl_buffer_get_buffer_from_libva(ctx, bo_name, &sz);
+ if (mem->bo == NULL) {
+ err = CL_MEM_OBJECT_ALLOCATION_FAILURE;
+ goto error;
+ }
mem->size = sz;
exit:
diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c
index 755ab6b9..a6b8a583 100644
--- a/src/intel/intel_driver.c
+++ b/src/intel/intel_driver.c
@@ -371,6 +371,10 @@ intel_driver_share_buffer(intel_driver_t *driver, const char *sname, uint32_t na
dri_bo *bo = intel_bo_gem_create_from_name(driver->bufmgr,
sname,
name);
+ if (bo == NULL) {
+ fprintf(stderr, "intel_bo_gem_create_from_name create \"%s\" bo from name %d failed: %s\n", sname, name, strerror(errno));
+ return NULL;
+ }
return bo;
}
@@ -684,6 +688,9 @@ cl_buffer intel_share_buffer_from_libva(cl_context ctx,
intel_bo = intel_driver_share_buffer((intel_driver_t *)ctx->drv, "shared from libva", bo_name);
+ if (intel_bo == NULL)
+ return NULL;
+
if (sz)
*sz = intel_bo->size;