diff options
author | Luo Xionghu <xionghu.luo@intel.com> | 2014-09-11 08:43:54 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2014-09-11 13:42:31 +0800 |
commit | 5cf035a8098deed26469b151972386fe5305c032 (patch) | |
tree | 7493ccf186058138b5c5698fc4411e37b10e8d5b /src/cl_kernel.c | |
parent | 55ac17eba32cb440f09a0cef63d0675ce9ebbfbb (diff) |
fix piglit cl-api-set-kernel-arg fail.
the memory object should be checked whether valid in context buffers before being set as kernel arguments.
v2: rename the function from mem_in_buffers to is_valid_mem, move the
magic header check into it.
Signed-off-by: Luo Xionghu <xionghu.luo@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'src/cl_kernel.c')
-rw-r--r-- | src/cl_kernel.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cl_kernel.c b/src/cl_kernel.c index 5ab9c558..d7c2f7c1 100644 --- a/src/cl_kernel.c +++ b/src/cl_kernel.c @@ -99,6 +99,7 @@ cl_kernel_set_arg(cl_kernel k, cl_uint index, size_t sz, const void *value) enum gbe_arg_type arg_type; /* kind of argument */ size_t arg_sz; /* size of the argument */ cl_mem mem = NULL; /* for __global, __constant and image arguments */ + cl_context ctx = k->program->ctx; if (UNLIKELY(index >= k->arg_n)) return CL_INVALID_ARG_INDEX; @@ -136,7 +137,7 @@ cl_kernel_set_arg(cl_kernel k, cl_uint index, size_t sz, const void *value) if(value != NULL) mem = *(cl_mem*)value; if(value != NULL && mem) { - if (UNLIKELY(mem->magic != CL_MAGIC_MEM_HEADER)) + if( CL_SUCCESS != is_valid_mem(mem, ctx->buffers)) return CL_INVALID_MEM_OBJECT; if (UNLIKELY((arg_type == GBE_ARG_IMAGE && !IS_IMAGE(mem)) |