DF-0066 / fix.diff
--- 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(); } |