[hrtimer] Enforce resolution as lower limit of intervals
[deliverable/linux.git] / kernel / hrtimer.c
index 76d759ce62316e0a0ac8b69a02b4c753f9bec20f..04ccab099e84e3ce01125a540e02f49d216f5943 100644 (file)
@@ -275,7 +275,7 @@ void unlock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags)
  * The number of overruns is added to the overrun field.
  */
 unsigned long
-hrtimer_forward(struct hrtimer *timer, const ktime_t interval)
+hrtimer_forward(struct hrtimer *timer, ktime_t interval)
 {
        unsigned long orun = 1;
        ktime_t delta, now;
@@ -287,6 +287,9 @@ hrtimer_forward(struct hrtimer *timer, const ktime_t interval)
        if (delta.tv64 < 0)
                return 0;
 
+       if (interval.tv64 < timer->base->resolution.tv64)
+               interval.tv64 = timer->base->resolution.tv64;
+
        if (unlikely(delta.tv64 >= interval.tv64)) {
                nsec_t incr = ktime_to_ns(interval);
 
This page took 0.028237 seconds and 5 git commands to generate.