Prevent overflow in the computation of timer expiry time inside
apply_slack().

Signed-off-by: Jiri Bohac <[email protected]>
Suggested-by: Deborah Townsend <[email protected]>

diff --git a/kernel/timer.c b/kernel/timer.c
index 87bd529..4c36c91 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -838,7 +838,7 @@ unsigned long apply_slack(struct timer_list *timer, 
unsigned long expires)
 
        bit = find_last_bit(&mask, BITS_PER_LONG);
 
-       mask = (1 << bit) - 1;
+       mask = (1LL << bit) - 1;
 
        expires_limit = expires_limit & ~(mask);
 
-- 
Jiri Bohac <[email protected]>
SUSE Labs, SUSE CZ

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to