timers: Simplify calc_index()
The level granularity round up of calc_index() does: (x + (1 << n)) >> n which is obviously equivalent to (x >> n) + 1 but compilers can't figure that out despite the fact that the input range is known to not cause an overflow. It's neither intuitive to read. Just write out the obvious. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/87h778j46c.ffs@tglx
This commit is contained in:
parent
2731aa7d65
commit
a2026e44ef
@ -502,7 +502,7 @@ static inline unsigned calc_index(unsigned long expires, unsigned lvl,
|
||||
*
|
||||
* Round up with level granularity to prevent this.
|
||||
*/
|
||||
expires = (expires + LVL_GRAN(lvl)) >> LVL_SHIFT(lvl);
|
||||
expires = (expires >> LVL_SHIFT(lvl)) + 1;
|
||||
*bucket_expiry = expires << LVL_SHIFT(lvl);
|
||||
return LVL_OFFS(lvl) + (expires & LVL_MASK);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user