From 12a2cb0d3ceb79f6568a0107d962b056f4084d79 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 9 Jun 2013 22:37:49 +1000 Subject: [PATCH] Demote failed hex2bin result to LOG_INFO and check return result in driver-bflsc to avoid doing find_work_by_midstate. --- driver-bflsc.c | 8 ++++++-- util.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/driver-bflsc.c b/driver-bflsc.c index 97654f53..687c56f6 100644 --- a/driver-bflsc.c +++ b/driver-bflsc.c @@ -1322,8 +1322,12 @@ static void process_nonces(struct cgpu_info *bflsc, int dev, char *xlink, char * memset(midstate, 0, MIDSTATE_BYTES); memset(blockdata, 0, MERKLE_BYTES); - hex2bin((unsigned char *)midstate, fields[QUE_MIDSTATE], MIDSTATE_BYTES); - hex2bin((unsigned char *)blockdata, fields[QUE_BLOCKDATA], MERKLE_BYTES); + if (!hex2bin((unsigned char *)midstate, fields[QUE_MIDSTATE], MIDSTATE_BYTES) || + !hex2bin((unsigned char *)blockdata, fields[QUE_BLOCKDATA], MERKLE_BYTES)) { + applog(LOG_ERR, "%s%i:%s Failed to convert binary data to hex result - ignored", + bflsc->drv->name, bflsc->device_id, xlink); + inc_hw_errors(bflsc->thr[0]); + } work = find_queued_work_bymidstate(bflsc, midstate, MIDSTATE_BYTES, blockdata, MERKLE_OFFSET, MERKLE_BYTES); diff --git a/util.c b/util.c index 8f8718ed..d04e67ba 100644 --- a/util.c +++ b/util.c @@ -615,7 +615,7 @@ bool hex2bin(unsigned char *p, const char *hexstr, size_t len) hex_byte[1] = hexstr[1]; if (unlikely(sscanf(hex_byte, "%x", &v) != 1)) { - applog(LOG_ERR, "hex2bin sscanf '%s' failed", hex_byte); + applog(LOG_INFO, "hex2bin sscanf '%s' failed", hex_byte); return ret; }