--- src/sys/kern/kern_spinlock.c 2008/05/04 04:48:47 1.12 +++ src/sys/kern/kern_spinlock.c 2008/05/05 11:07:48 1.13 @@ -266,8 +266,8 @@ exponential_backoff(struct exponential_b #ifdef _RDTSC_SUPPORTED_ if (cpu_feature & CPUID_TSC) { backoff = - ((u_long)rdtsc() ^ (((u_long)curthread) >> 5)) % bo->backoff - + BACKOFF_INITIAL; + (((u_long)rdtsc() ^ (((u_long)curthread) >> 5)) & + (bo->backoff - 1)) + BACKOFF_INITIAL; } else #endif backoff = bo->backoff;