diff --git a/src/backend.c b/src/backend.c index 66e19d084..313e6c948 100644 --- a/src/backend.c +++ b/src/backend.c @@ -76,7 +76,14 @@ static int backend_ctx_find_alias_devices (hashcat_ctx_t *hashcat_ctx) if (device_param_dst->is_opencl == true) { - device_param_dst->skipped = true; + if (device_param_dst->skipped == false) + { + device_param_dst->skipped = true; + + backend_ctx->opencl_devices_active--; + + backend_ctx->backend_devices_active--; + } } } } @@ -6381,6 +6388,15 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime) backend_ctx->backend_devices_cnt = cuda_devices_cnt + opencl_devices_cnt; backend_ctx->backend_devices_active = cuda_devices_active + opencl_devices_active; + // find duplicate devices (typically cuda and opencl!) + // using force here enables both devices, which is the worst possible outcome + // many users force by default, so this is not a good idea + + //if (user_options->force == false) + //{ + backend_ctx_find_alias_devices (hashcat_ctx); + //} + if (backend_ctx->backend_devices_active == 0) { event_log_error (hashcat_ctx, "No devices found/left."); @@ -6388,13 +6404,6 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime) return -1; } - // find duplicate devices (typically cuda and opencl!) - - if (user_options->force == false) - { - backend_ctx_find_alias_devices (hashcat_ctx); - } - // additional check to see if the user has chosen a device that is not within the range of available devices (i.e. larger than devices_cnt) if (backend_ctx->backend_devices_filter != (u64) -1)