diff options
Diffstat (limited to 'app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch')
-rw-r--r-- | app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch b/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch new file mode 100644 index 000000000000..52120e0e05c4 --- /dev/null +++ b/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch @@ -0,0 +1,53 @@ +diff --git a/docs/changes.txt b/docs/changes.txt +index 1527da46..420c2102 100644 +--- a/docs/changes.txt ++++ b/docs/changes.txt +@@ -1,3 +1,11 @@ ++* changes v6.0.0 -> v6.0.x ++ ++## ++## Improvements ++## ++ ++- OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal ++ + * changes v5.1.0 -> v6.0.0 + + ## +diff --git a/src/backend.c b/src/backend.c +index 80fdbb38..7f79879f 100644 +--- a/src/backend.c ++++ b/src/backend.c +@@ -5185,7 +5185,31 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx) + { + event_log_error (hashcat_ctx, "clGetDeviceIDs(): %s", val2cstr_cl (CL_rc)); + +- return -1; ++ // Special handling for CL_DEVICE_NOT_FOUND, see: https://github.com/hashcat/hashcat/issues/2455 ++ ++ #define IGNORE_DEVICE_NOT_FOUND 1 ++ ++ if (IGNORE_DEVICE_NOT_FOUND) ++ { ++ backend_ctx_t *backend_ctx = hashcat_ctx->backend_ctx; ++ ++ OCL_PTR *ocl = (OCL_PTR *) backend_ctx->ocl; ++ ++ const cl_int CL_err = ocl->clGetDeviceIDs (opencl_platform, CL_DEVICE_TYPE_ALL, DEVICES_MAX, opencl_platform_devices, &opencl_platform_devices_cnt); ++ ++ if (CL_err == CL_DEVICE_NOT_FOUND) ++ { ++ // we ignore this error ++ } ++ else ++ { ++ return -1; ++ } ++ } ++ else ++ { ++ return -1; ++ } + } + + opencl_platforms_devices[opencl_platforms_idx] = opencl_platform_devices; |