static int64_t bitforce_scanhash(struct thr_info *thr, struct work *work, int64_t __maybe_unused max_nonce) { struct cgpu_info *bitforce = thr->cgpu; bool send_ret; int64_t ret; send_ret = bitforce_send_work(thr, work); if (!restart_wait(bitforce->sleep_ms)) return 0; bitforce->wait_ms = bitforce->sleep_ms; if (send_ret) { bitforce->polling = true; ret = bitforce_get_result(thr, work); bitforce->polling = false; } else ret = -1; if (ret == -1) { ret = 0; applog(LOG_ERR, "BFL%i: Comms error", bitforce->device_id); bitforce->device_last_not_well = time(NULL); bitforce->device_not_well_reason = REASON_DEV_COMMS_ERROR; bitforce->dev_comms_error_count++; bitforce->hw_errors++; /* empty read buffer */ bitforce_clear_buffer(bitforce); } return ret; }
static int64_t bitforce_scanhash(struct thr_info *thr, struct work *work, int64_t __maybe_unused max_nonce) { struct cgpu_info *bitforce = thr->cgpu; bool send_ret; int64_t ret; send_ret = bitforce_send_work(thr, work); if (!restart_wait(bitforce->sleep_ms)) return 0; bitforce->wait_ms = bitforce->sleep_ms; if (send_ret) { bitforce->polling = true; ret = bitforce_get_result(thr, work); bitforce->polling = false; } else ret = -1; if (ret == -1) { ret = 0; applog(LOG_ERR, "%s%i: Comms error", bitforce->drv->name, bitforce->device_id); dev_error(bitforce, REASON_DEV_COMMS_ERROR); bitforce->hw_errors++; /* empty read buffer */ bitforce_initialise(bitforce, true); } return ret; }