Commit b6ac9f185e168e8ac93b1bf4774dca830c5017ec

Con Kolivas 2011-07-17T20:06:43

Revert "Make sure not to try and submit work for nonces higher than already submitted in current work item." This reverts commit a2dd410e362116a12ac5609da77abb3a5ee1b736. Incorrect fix. Missed real shares that are accepted.

diff --git a/findnonce.c b/findnonce.c
index 06882b5..de9890e 100644
--- a/findnonce.c
+++ b/findnonce.c
@@ -157,6 +157,7 @@ static void *postcalc_hash(void *userdata)
 	cl_uint A, B, C, D, E, F, G, H;
 	cl_uint W[16];
 	cl_uint nonce;
+	cl_uint best_g;
 	uint32_t end;
 	int entry = 0;
 
@@ -171,6 +172,7 @@ cycle:
 	if (entry == MAXBUFFERS)
 		goto out;
 
+	best_g = ~0;
 	end = start + 1026;
 
 	for (nonce = start; nonce != end; nonce+=1) {
@@ -204,21 +206,20 @@ cycle:
 		FR(48); PFR(56);
 
 		if (unlikely(H == 0xA41F32E7)) {
+			if (unlikely(submit_nonce(thr, work, nonce) == false)) {
+				applog(LOG_ERR, "Failed to submit work, exiting");
+				break;
+			}
 
 			G += 0x1f83d9ab;
 			G = ByteReverse(G);
 
-			if (G < thr->best_g) {
-				if (unlikely(submit_nonce(thr, work, nonce) == false)) {
-					applog(LOG_ERR, "Failed to submit work, exiting");
-					break;
-				}
-				thr->best_g = G;
-			}
+			if (G < best_g)
+				best_g = G;
 		}
 	}
 
-	if (unlikely(thr->best_g == ~0)) {
+	if (unlikely(best_g == ~0)) {
 		if (opt_debug)
 			applog(LOG_DEBUG, "No best_g found! Error in OpenCL code?");
 		hw_errors++;
diff --git a/main.c b/main.c
index 1c9268c..eb111fe 100644
--- a/main.c
+++ b/main.c
@@ -1727,7 +1727,6 @@ static void *gpuminer_thread(void *userdata)
 					"gpu mining thread %d", mythr->id);
 				goto out;
 			}
-			mythr->best_g = ~0;
 			mythr->cgpu->getworks++;
 			work->thr_id = thr_id;
 			requested = false;
diff --git a/miner.h b/miner.h
index 358590f..53a537e 100644
--- a/miner.h
+++ b/miner.h
@@ -145,7 +145,6 @@ struct thr_info {
 	struct thread_q	*q;
 	struct cgpu_info *cgpu;
 	struct timeval last;
-	cl_uint best_g;
 };
 
 static inline uint32_t swab32(uint32_t v)