From 3515b6e2e6407f07d84d92aaef0d8511fb263ebb Mon Sep 17 00:00:00 2001 From: Kano Date: Thu, 21 Feb 2013 07:35:39 +1100 Subject: [PATCH 1/3] BFL stop 1st init command if no device --- driver-bitforce.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/driver-bitforce.c b/driver-bitforce.c index b7f238b9..228fa5e7 100644 --- a/driver-bitforce.c +++ b/driver-bitforce.c @@ -85,6 +85,9 @@ static void bitforce_initialise(struct cgpu_info *bitforce, bool lock) if (lock) mutex_lock(&bitforce->device_mutex); + if (bitforce->usbinfo.nodev) + goto failed; + // Reset err = usb_transfer(bitforce, FTDI_TYPE_OUT, FTDI_REQUEST_RESET, FTDI_VALUE_RESET, bitforce->usbdev->found->interface, C_RESET); From 42a01e7b37789c31933cc7a73e7ed4266bbd48ae Mon Sep 17 00:00:00 2001 From: Kano Date: Fri, 1 Mar 2013 16:49:08 +1100 Subject: [PATCH 2/3] Update diff stale: total and pools when stratum throws away shares --- cgminer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cgminer.c b/cgminer.c index 4fca0759..66af12eb 100644 --- a/cgminer.c +++ b/cgminer.c @@ -4698,12 +4698,14 @@ out: void clear_stratum_shares(struct pool *pool) { struct stratum_share *sshare, *tmpshare; + double diff_cleared = 0; int cleared = 0; mutex_lock(&sshare_lock); HASH_ITER(hh, stratum_shares, sshare, tmpshare) { if (sshare->work->pool == pool) { HASH_DEL(stratum_shares, sshare); + diff_cleared += sshare->work->work_difficulty; free_work(sshare->work); free(sshare); cleared++; @@ -4715,6 +4717,8 @@ void clear_stratum_shares(struct pool *pool) applog(LOG_WARNING, "Lost %d shares due to stratum disconnect on pool %d", cleared, pool->pool_no); pool->stale_shares += cleared; total_stale += cleared; + pool->diff_stale += diff_cleared; + total_diff_stale += diff_cleared; } } From f56a0fb71923ac931c6643cb29f407dbbe44330c Mon Sep 17 00:00:00 2001 From: Kano Date: Fri, 1 Mar 2013 16:57:22 +1100 Subject: [PATCH 3/3] API always report failed send() replies --- api.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/api.c b/api.c index 6d77c600..9140df64 100644 --- a/api.c +++ b/api.c @@ -3433,12 +3433,10 @@ static void send_result(struct io_data *io_data, SOCKETTYPE c, bool isjson) // ignore failure - it's closed immediately anyway n = send(c, buf, len+1, 0); - if (opt_debug) { - if (SOCKETFAIL(n)) - applog(LOG_DEBUG, "API: send failed: %s", SOCKERRMSG); - else - applog(LOG_DEBUG, "API: sent %d", n); - } + if (SOCKETFAIL(n)) + applog(LOG_WARNING, "API: send failed: %s", SOCKERRMSG); + else + applog(LOG_DEBUG, "API: sent %d", n); } static void tidyup(__maybe_unused void *arg)