Browse Source

Clean up on failure to load a binary kernel.

nfactor-troky
Con Kolivas 13 years ago
parent
commit
0719d40704
  1. 5
      ocl.c

5
ocl.c

@ -424,6 +424,9 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) @@ -424,6 +424,9 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
fclose(binaryfile);
goto build;
}
if (!binary_stat.st_size)
goto build;
binary_sizes[gpu] = binary_stat.st_size;
binaries[gpu] = (char *)malloc(binary_sizes[gpu]);
if (unlikely(!binaries[gpu])) {
@ -435,6 +438,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) @@ -435,6 +438,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
if (fread(binaries[gpu], 1, binary_sizes[gpu], binaryfile) != binary_sizes[gpu]) {
applog(LOG_ERR, "Unable to fread binaries[gpu]");
fclose(binaryfile);
free(binaries[gpu]);
goto build;
}
@ -442,6 +446,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) @@ -442,6 +446,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
if (status != CL_SUCCESS) {
applog(LOG_ERR, "Error: Loading Binary into cl_program (clCreateProgramWithBinary)");
fclose(binaryfile);
free(binaries[gpu]);
goto build;
}
fclose(binaryfile);

Loading…
Cancel
Save