From a2640c9ba977dbc61f370979783c5dc6ef90e4ba Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Sun, 7 Dec 2003 09:57:51 +0000 Subject: [PATCH] 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 --- sys/kern/sched_ule.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 6e18ecb33f54..c8e36f97af47 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -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) {