--- /dev/null
+From ghackmann@google.com Tue Jul 25 14:42:30 2017
+From: Greg Hackmann <ghackmann@google.com>
+Date: Tue, 25 Jul 2017 12:42:46 -0700
+Subject: alarmtimer: don't rate limit one-shot timers
+To: John Stultz <john.stultz@linaro.org>, Thomas Gleixner <tglx@linutronix.de>
+Cc: Ben Fennema <fennema@google.com>, linux-kernel@vger.kernel.org, Greg Hackmann <ghackmann@google.com>, stable@vger.kernel.org
+Message-ID: <20170725194246.78059-1-ghackmann@google.com>
+
+From: Greg Hackmann <ghackmann@google.com>
+
+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 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/time/alarmtimer.c
++++ b/kernel/time/alarmtimer.c
+@@ -665,7 +665,7 @@ static int alarm_timer_set(struct k_itim
+ * 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);