Loading kernel/sched.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -668,7 +668,7 @@ static u64 div64_likely32(u64 divident, unsigned long divisor) /* /* * Shift right and round: * Shift right and round: */ */ #define RSR(x, y) (((x) + (1UL << ((y) - 1))) >> (y)) #define SRR(x, y) (((x) + (1UL << ((y) - 1))) >> (y)) static unsigned long static unsigned long calc_delta_mine(unsigned long delta_exec, unsigned long weight, calc_delta_mine(unsigned long delta_exec, unsigned long weight, Loading @@ -684,10 +684,10 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight, * Check whether we'd overflow the 64-bit multiplication: * Check whether we'd overflow the 64-bit multiplication: */ */ if (unlikely(tmp > WMULT_CONST)) if (unlikely(tmp > WMULT_CONST)) tmp = RSR(RSR(tmp, WMULT_SHIFT/2) * lw->inv_weight, tmp = SRR(SRR(tmp, WMULT_SHIFT/2) * lw->inv_weight, WMULT_SHIFT/2); WMULT_SHIFT/2); else else tmp = RSR(tmp * lw->inv_weight, WMULT_SHIFT); tmp = SRR(tmp * lw->inv_weight, WMULT_SHIFT); return (unsigned long)min(tmp, (u64)(unsigned long)LONG_MAX); return (unsigned long)min(tmp, (u64)(unsigned long)LONG_MAX); } } Loading Loading
kernel/sched.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -668,7 +668,7 @@ static u64 div64_likely32(u64 divident, unsigned long divisor) /* /* * Shift right and round: * Shift right and round: */ */ #define RSR(x, y) (((x) + (1UL << ((y) - 1))) >> (y)) #define SRR(x, y) (((x) + (1UL << ((y) - 1))) >> (y)) static unsigned long static unsigned long calc_delta_mine(unsigned long delta_exec, unsigned long weight, calc_delta_mine(unsigned long delta_exec, unsigned long weight, Loading @@ -684,10 +684,10 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight, * Check whether we'd overflow the 64-bit multiplication: * Check whether we'd overflow the 64-bit multiplication: */ */ if (unlikely(tmp > WMULT_CONST)) if (unlikely(tmp > WMULT_CONST)) tmp = RSR(RSR(tmp, WMULT_SHIFT/2) * lw->inv_weight, tmp = SRR(SRR(tmp, WMULT_SHIFT/2) * lw->inv_weight, WMULT_SHIFT/2); WMULT_SHIFT/2); else else tmp = RSR(tmp * lw->inv_weight, WMULT_SHIFT); tmp = SRR(tmp * lw->inv_weight, WMULT_SHIFT); return (unsigned long)min(tmp, (u64)(unsigned long)LONG_MAX); return (unsigned long)min(tmp, (u64)(unsigned long)LONG_MAX); } } Loading