diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2014-08-04 23:37:41 +0200 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2014-08-25 21:20:31 +0200 |
commit | dc1104a523e1988a827ab1eb42ec00e647b402f4 (patch) | |
tree | 6e53b454f0e0902ea957775c26b35e48a3f18cef | |
parent | 9aea19ae1b057b037cae011fd55d167486df301a (diff) |
fosphor/cl: Properly set the 'err' variable when cl_load_program fails
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r-- | lib/fosphor/cl.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/fosphor/cl.c b/lib/fosphor/cl.c index 89af105..fea1dd8 100644 --- a/lib/fosphor/cl.c +++ b/lib/fosphor/cl.c @@ -308,7 +308,8 @@ error: static cl_program cl_load_program(cl_device_id dev_id, cl_context ctx, - const char *resource_name, const char *opts) + const char *resource_name, const char *opts, + cl_int *err_ptr) { cl_program prog = NULL; const char *src; @@ -318,6 +319,7 @@ cl_load_program(cl_device_id dev_id, cl_context ctx, src = resource_get(resource_name, NULL); if (!src) { fprintf(stderr, "[!] Unable to load non-existent resource '%s'\n", resource_name); + err = CL_INVALID_VALUE; goto error; } @@ -376,6 +378,9 @@ error: if (prog) clReleaseProgram(prog); + if (err_ptr) + *err_ptr = err; + return NULL; } @@ -632,7 +637,7 @@ cl_do_init(struct fosphor *self) CL_ERR_CHECK(err, "Unable to allocate FFT window buffer"); /* FFT program/kernels */ - cl->prog_fft = cl_load_program(cl->dev_id, cl->ctx, "fft.cl", NULL); + cl->prog_fft = cl_load_program(cl->dev_id, cl->ctx, "fft.cl", NULL, &err); if (!cl->prog_fft) goto error; @@ -663,7 +668,7 @@ cl_do_init(struct fosphor *self) else disp_opts = NULL; - cl->prog_display = cl_load_program(cl->dev_id, cl->ctx, "display.cl", disp_opts); + cl->prog_display = cl_load_program(cl->dev_id, cl->ctx, "display.cl", disp_opts, &err); if (!cl->prog_display) goto error; |