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:
parent
e48e0e186a
commit
e28e232dff
@ -536,7 +536,7 @@ runq_steal(struct runq *rq)
|
|||||||
if (rqb->rqb_bits[word] == 0)
|
if (rqb->rqb_bits[word] == 0)
|
||||||
continue;
|
continue;
|
||||||
for (bit = 0; bit < RQB_BPW; bit++) {
|
for (bit = 0; bit < RQB_BPW; bit++) {
|
||||||
if ((rqb->rqb_bits[word] & (1 << bit)) == 0)
|
if ((rqb->rqb_bits[word] & (1ul << bit)) == 0)
|
||||||
continue;
|
continue;
|
||||||
rqh = &rq->rq_queues[bit + (word << RQB_L2BPW)];
|
rqh = &rq->rq_queues[bit + (word << RQB_L2BPW)];
|
||||||
TAILQ_FOREACH(ke, rqh, ke_procq) {
|
TAILQ_FOREACH(ke, rqh, ke_procq) {
|
||||||
|
Loading…
Reference in New Issue
Block a user