rqb_bits[] may be an int64_t (eg: on alpha, and recently on amd64).

Be sure to shift (long)1 << 33 and higher, not (int)1.  Otherwise bad
things happen(TM).  This is why beast.freebsd.org paniced with ULE.

Reviewed by:  jeff
This commit is contained in:
Peter Wemm 2003-12-07 09:57:51 +00:00
parent 813dd1729c
commit a2640c9ba9

View File

@ -536,7 +536,7 @@ runq_steal(struct runq *rq)
if (rqb->rqb_bits[word] == 0)
continue;
for (bit = 0; bit < RQB_BPW; bit++) {
if ((rqb->rqb_bits[word] & (1 << bit)) == 0)
if ((rqb->rqb_bits[word] & (1ul << bit)) == 0)
continue;
rqh = &rq->rq_queues[bit + (word << RQB_L2BPW)];
TAILQ_FOREACH(ke, rqh, ke_procq) {