|
|
@@ -990,11 +990,8 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
|
|
|
/* Remove an active timer from the queue: */
|
|
|
ret = remove_hrtimer(timer, base);
|
|
|
|
|
|
- /* Switch the timer base, if necessary: */
|
|
|
- new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
|
|
|
-
|
|
|
if (mode & HRTIMER_MODE_REL) {
|
|
|
- tim = ktime_add_safe(tim, new_base->get_time());
|
|
|
+ tim = ktime_add_safe(tim, base->get_time());
|
|
|
/*
|
|
|
* CONFIG_TIME_LOW_RES is a temporary way for architectures
|
|
|
* to signal that they simply return xtime in
|
|
|
@@ -1009,6 +1006,9 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
|
|
|
|
|
|
hrtimer_set_expires_range_ns(timer, tim, delta_ns);
|
|
|
|
|
|
+ /* Switch the timer base, if necessary: */
|
|
|
+ new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
|
|
|
+
|
|
|
timer_stats_hrtimer_set_start_info(timer);
|
|
|
|
|
|
leftmost = enqueue_hrtimer(timer, new_base);
|