[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170724171924.27898-1-ghackmann@google.com>
Date: Mon, 24 Jul 2017 10:19:24 -0700
From: Greg Hackmann <ghackmann@...gle.com>
To: John Stultz <john.stultz@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>
Cc: Ben Fennema <fennema@...gle.com>, linux-kernel@...r.kernel.org,
Greg Hackmann <ghackmann@...gle.com>, stable@...r.kernel.org
Subject: [PATCH] alarmtimer: don't rate limit one-shot timers
Commit ff86bf0c65f1 ("alarmtimer: Rate limit periodic intervals") sets a
minimum bound on the alarm timer interval. This minimum bound shouldn't
be applied if the interval is 0. Otherwise, one-shot timers will be
converted into periodic ones.
This patch is against 4.9.39, and is only needed in -stable trees.
4.13-rc2 isn't impacted due to a later refactoring.
Fixes: ff86bf0c65f1 ("alarmtimer: Rate limit periodic intervals")
Reported-by: Ben Fennema <fennema@...gle.com>
Signed-off-by: Greg Hackmann <ghackmann@...gle.com>
Cc: stable@...r.kernel.org
---
kernel/time/alarmtimer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
index 9ba04aa740b9..d67ef56ca9bc 100644
--- a/kernel/time/alarmtimer.c
+++ b/kernel/time/alarmtimer.c
@@ -629,7 +629,8 @@ static int alarm_timer_set(struct k_itimer *timr, int flags,
* Rate limit to the tick as a hot fix to prevent DOS. Will be
* mopped up later.
*/
- if (ktime_to_ns(timr->it.alarm.interval) < TICK_NSEC)
+ if (timr->it.alarm.interval.tv64 &&
+ ktime_to_ns(timr->it.alarm.interval) < TICK_NSEC)
timr->it.alarm.interval = ktime_set(0, TICK_NSEC);
exp = timespec_to_ktime(new_setting->it_value);
--
2.14.0.rc0.284.gd933b75aa4-goog
Powered by blists - more mailing lists