summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-12-07 09:57:51 +0000
committerpeter <peter@FreeBSD.org>2003-12-07 09:57:51 +0000
commite28e232dff09a162e5f45df2b2979944ddb8f88c (patch)
treed2b6fc880b56d6a7799cafdfda4f9c7450712041
parente48e0e186a7b5f0a1bfa2d7d318bf1918b53ce59 (diff)
downloadFreeBSD-src-e28e232dff09a162e5f45df2b2979944ddb8f88c.zip
FreeBSD-src-e28e232dff09a162e5f45df2b2979944ddb8f88c.tar.gz
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
-rw-r--r--sys/kern/sched_ule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 6e18ecb..c8e36f9 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) {
OpenPOWER on IntegriCloud