X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=kernel%2Fsched.c;h=7d98d58777bb4375b2d818f448e06500523dc00b;hp=33ac1e3485422f0bdb9679634b90b0d03cbc4bcb;hb=245d83e38d1cff739a6084e4b4a4e2cb670cd1a1;hpb=45a50deeb0b13dda1303f34b175fef101be5dbdd;ds=sidebyside diff --git a/kernel/sched.c b/kernel/sched.c index 33ac1e348542..7d98d58777bb 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3507,10 +3507,13 @@ static long calc_load_fold_active(struct rq *this_rq) static unsigned long calc_load(unsigned long load, unsigned long exp, unsigned long active) { - load *= exp; - load += active * (FIXED_1 - exp); - load += 1UL << (FSHIFT - 1); - return load >> FSHIFT; + unsigned long newload; + + newload = load * exp + active * (FIXED_1 - exp); + if (active >= load) + newload += FIXED_1-1; + + return newload / FIXED_1; } #ifdef CONFIG_NO_HZ