diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-06 16:18:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-06 16:18:29 -0400 |
commit | b62ad9ab181a67207a4c8c373461b587c4861a68 (patch) | |
tree | ace1572964d81f5f9bbc10b7960c1f742832d744 /kernel/hrtimer.c | |
parent | af390084359a5de20046c901529b2b6a50b941cb (diff) | |
parent | b29230769e3482bbd62a07d6d9485371ee66a18f (diff) |
Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
um: Fix read_persistent_clock fallout
kgdb: Do not access xtime directly
powerpc: Clean up obsolete code relating to decrementer and timebase
powerpc: Rework VDSO gettimeofday to prevent time going backwards
clocksource: Add __clocksource_updatefreq_hz/khz methods
x86: Convert common clocksources to use clocksource_register_hz/khz
timekeeping: Make xtime and wall_to_monotonic static
hrtimer: Cleanup direct access to wall_to_monotonic
um: Convert to use read_persistent_clock
timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset
powerpc: Cleanup xtime usage
powerpc: Simplify update_vsyscall
time: Kill off CONFIG_GENERIC_TIME
time: Implement timespec_add
x86: Fix vtime/file timestamp inconsistencies
Trivial conflicts in Documentation/feature-removal-schedule.txt
Much less trivial conflicts in arch/powerpc/kernel/time.c resolved as
per Thomas' earlier merge commit 47916be4e28c ("Merge branch
'powerpc.cherry-picks' into timers/clocksource")
Diffstat (limited to 'kernel/hrtimer.c')
-rw-r--r-- | kernel/hrtimer.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index e934339fbbef..ce669174f355 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -90,7 +90,7 @@ static void hrtimer_get_softirq_time(struct hrtimer_cpu_base *base) | |||
90 | do { | 90 | do { |
91 | seq = read_seqbegin(&xtime_lock); | 91 | seq = read_seqbegin(&xtime_lock); |
92 | xts = __current_kernel_time(); | 92 | xts = __current_kernel_time(); |
93 | tom = wall_to_monotonic; | 93 | tom = __get_wall_to_monotonic(); |
94 | } while (read_seqretry(&xtime_lock, seq)); | 94 | } while (read_seqretry(&xtime_lock, seq)); |
95 | 95 | ||
96 | xtim = timespec_to_ktime(xts); | 96 | xtim = timespec_to_ktime(xts); |
@@ -608,7 +608,7 @@ static int hrtimer_reprogram(struct hrtimer *timer, | |||
608 | static void retrigger_next_event(void *arg) | 608 | static void retrigger_next_event(void *arg) |
609 | { | 609 | { |
610 | struct hrtimer_cpu_base *base; | 610 | struct hrtimer_cpu_base *base; |
611 | struct timespec realtime_offset; | 611 | struct timespec realtime_offset, wtm; |
612 | unsigned long seq; | 612 | unsigned long seq; |
613 | 613 | ||
614 | if (!hrtimer_hres_active()) | 614 | if (!hrtimer_hres_active()) |
@@ -616,10 +616,9 @@ static void retrigger_next_event(void *arg) | |||
616 | 616 | ||
617 | do { | 617 | do { |
618 | seq = read_seqbegin(&xtime_lock); | 618 | seq = read_seqbegin(&xtime_lock); |
619 | set_normalized_timespec(&realtime_offset, | 619 | wtm = __get_wall_to_monotonic(); |
620 | -wall_to_monotonic.tv_sec, | ||
621 | -wall_to_monotonic.tv_nsec); | ||
622 | } while (read_seqretry(&xtime_lock, seq)); | 620 | } while (read_seqretry(&xtime_lock, seq)); |
621 | set_normalized_timespec(&realtime_offset, -wtm.tv_sec, -wtm.tv_nsec); | ||
623 | 622 | ||
624 | base = &__get_cpu_var(hrtimer_bases); | 623 | base = &__get_cpu_var(hrtimer_bases); |
625 | 624 | ||