From: Ingo Molnar Date: Fri, 16 Feb 2007 09:27:29 +0000 (-0800) Subject: [PATCH] Fix timeout overflow with jiffies X-Git-Tag: firefly_0821_release~31189 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9f907c0144496e464bd5ed5a99a51227d63a9c0b;p=firefly-linux-kernel-4.4.55.git [PATCH] Fix timeout overflow with jiffies Prevent timeout overflow if timer ticks are behind jiffies (due to high softirq load or due to dyntick), by limiting the valid timeout range to MAX_LONG/2. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Cc: john stultz Cc: Roman Zippel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index 9243cefa4512..c080f61fb024 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h @@ -142,13 +142,13 @@ static inline u64 get_jiffies_64(void) * * And some not so obvious. * - * Note that we don't want to return MAX_LONG, because + * Note that we don't want to return LONG_MAX, because * for various timeout reasons we often end up having * to wait "jiffies+1" in order to guarantee that we wait * at _least_ "jiffies" - so "jiffies+1" had better still * be positive. */ -#define MAX_JIFFY_OFFSET ((~0UL >> 1)-1) +#define MAX_JIFFY_OFFSET ((LONG_MAX >> 1)-1) /* * We want to do realistic conversions of time so we need to use the same