DragonFlyBSD Kernel Audit
DF-0066 / fix.diff
← back to finding ↓ download raw
--- a/kern/lwkt_token.c
+++ b/kern/lwkt_token.c
@@ -397,7 +397,7 @@
 		expbackoff = 0;
 		while (expbackoff < 6 + token_backoff_max) {
 			expbackoff = (expbackoff + 1) * 3 / 2;
-			if ((rdtsc() >> token_window_shift) % ncpus != mycpuid)  {
+			if ((rdtsc() >> (token_window_shift & 63)) % ncpus != mycpuid)  {
 				for (loop = expbackoff; loop; --loop)
 					cpu_pause();
 			}