]> git.hungrycats.org Git - linux/commitdiff
alarmtimer: don't rate limit one-shot timers
authorGreg Hackmann <ghackmann@google.com>
Tue, 25 Jul 2017 19:42:46 +0000 (12:42 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2017 22:10:25 +0000 (15:10 -0700)
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 specific to 4.11.y and 4.12.y.  Older -stable trees have a
slightly different patch, and 4.13-rc2 isn't impacted due to a later
refactoring.

Fixes: ff86bf0c65f1 ("alarmtimer: Rate limit periodic intervals")
Reported-by: Ben Fennema <fennema@google.com>
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Cc: John Stultz <john.stultz@linaro.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/time/alarmtimer.c

index ee2f4202d82aa2acec5e438218a2405a4315f166..11e70a38497c00ff7a5d527ae8e10e41658bd605 100644 (file)
@@ -665,7 +665,7 @@ 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 (timr->it.alarm.interval < TICK_NSEC)
+       if (timr->it.alarm.interval && timr->it.alarm.interval < TICK_NSEC)
                timr->it.alarm.interval = TICK_NSEC;
 
        exp = timespec64_to_ktime(new_setting->it_value);