diff --git a/[refs] b/[refs] index 74da41c857fd..cb171ed747ed 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: db44fc017d5989302713ab4e7f9e922b648f4b59 +refs/heads/master: db670dac49b5423b39b5e523d28fe32045d71b10 diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 70bec4f1edbb..c62acf45d3b9 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -1330,15 +1330,15 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight, { u64 tmp; + tmp = (u64)delta_exec * weight; + if (!lw->inv_weight) { if (BITS_PER_LONG > 32 && unlikely(lw->weight >= WMULT_CONST)) lw->inv_weight = 1; else - lw->inv_weight = 1 + (WMULT_CONST-lw->weight/2) - / (lw->weight+1); + lw->inv_weight = WMULT_CONST / lw->weight; } - tmp = (u64)delta_exec * weight; /* * Check whether we'd overflow the 64-bit multiplication: */