This code was added long back by following commit:
commit 06027bdd278a32a84b273e41db68a5db8ffd2bb6 Author: Ingo Molnar mingo@elte.hu Date: Tue Feb 14 13:53:15 2006 -0800
[PATCH] hrtimer: round up relative start time on low-res arches
Don't know if it was a mistake or was intentional. But probably we must use new_base instead of base here to get resolution. Things might be working smoothly as resolution might be same for both the bases in most of the cases.
Cc: Ingo Molnar mingo@redhat.com Signed-off-by: Viresh Kumar viresh.kumar@linaro.org --- Also commit log of above commit has this: "This will go away with the GTOD framework". So, should we get this removed?
kernel/hrtimer.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 0ae0fbf..5d77f36 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -925,12 +925,11 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, unsigned long delta_ns, const enum hrtimer_mode mode, int wakeup) { - struct hrtimer_clock_base *base, *new_base; + struct hrtimer_clock_base *new_base; unsigned long flags; int ret;
lock_hrtimer_base(timer, &flags); - base = timer->base;
/* Remove an active timer from the queue: */ ret = remove_hrtimer(timer); @@ -949,7 +948,7 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, * timeouts. This will go away with the GTOD framework. */ #ifdef CONFIG_TIME_LOW_RES - tim = ktime_add_safe(tim, base->resolution); + tim = ktime_add_safe(tim, new_base->resolution); #endif }