Browse Source

Count an invalid nonce count as a hardware error on opencl.

Con Kolivas 13 years ago
parent
commit
2b6e3676cd
1 changed files with 8 additions and 1 deletions
  1. 8 1
      findnonce.c

+ 8 - 1
findnonce.c

@@ -254,7 +254,14 @@ static void *postcalc_hash(void *userdata)
 
 
 	/* To prevent corrupt values in FOUND from trying to read beyond the
 	/* To prevent corrupt values in FOUND from trying to read beyond the
 	 * end of the res[] array */
 	 * end of the res[] array */
-	pcd->res[FOUND] &= FOUND;
+	if (unlikely(pcd->res[FOUND] & ~FOUND)) {
+		applog(LOG_WARNING, "%s%d: invalid nonce count - HW error",
+				thr->cgpu->api->name, thr->cgpu->device_id);
+		hw_errors++;
+		thr->cgpu->hw_errors++;
+		pcd->res[FOUND] &= FOUND;
+	}
+
 	for (entry = 0; entry < pcd->res[FOUND]; entry++) {
 	for (entry = 0; entry < pcd->res[FOUND]; entry++) {
 		uint32_t nonce = pcd->res[entry];
 		uint32_t nonce = pcd->res[entry];