diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-08 22:28:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-08 22:28:09 -0500 |
commit | fbf07eac7bf21c262143194181bd97c5d18b8ceb (patch) | |
tree | c9228b7d272f1e39472da28032605ecd1860e688 /arch/powerpc/kernel/time.c | |
parent | 60d8ce2cd6c283132928c11f3fd57ff4187287e0 (diff) | |
parent | 8629ea2eaba8ca0de2e38ce1b4a825e16255976e (diff) |
Merge branch 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
hrtimer: Fix /proc/timer_list regression
itimers: Fix racy writes to cpu_itimer fields
timekeeping: Fix clock_gettime vsyscall time warp
Diffstat (limited to 'arch/powerpc/kernel/time.c')
-rw-r--r-- | arch/powerpc/kernel/time.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index d18a7f04edec..674800b242d6 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -834,7 +834,8 @@ static cycle_t timebase_read(struct clocksource *cs) | |||
834 | return (cycle_t)get_tb(); | 834 | return (cycle_t)get_tb(); |
835 | } | 835 | } |
836 | 836 | ||
837 | void update_vsyscall(struct timespec *wall_time, struct clocksource *clock) | 837 | void update_vsyscall(struct timespec *wall_time, struct clocksource *clock, |
838 | u32 mult) | ||
838 | { | 839 | { |
839 | u64 t2x, stamp_xsec; | 840 | u64 t2x, stamp_xsec; |
840 | 841 | ||
@@ -847,7 +848,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock) | |||
847 | 848 | ||
848 | /* XXX this assumes clock->shift == 22 */ | 849 | /* XXX this assumes clock->shift == 22 */ |
849 | /* 4611686018 ~= 2^(20+64-22) / 1e9 */ | 850 | /* 4611686018 ~= 2^(20+64-22) / 1e9 */ |
850 | t2x = (u64) clock->mult * 4611686018ULL; | 851 | t2x = (u64) mult * 4611686018ULL; |
851 | stamp_xsec = (u64) xtime.tv_nsec * XSEC_PER_SEC; | 852 | stamp_xsec = (u64) xtime.tv_nsec * XSEC_PER_SEC; |
852 | do_div(stamp_xsec, 1000000000); | 853 | do_div(stamp_xsec, 1000000000); |
853 | stamp_xsec += (u64) xtime.tv_sec * XSEC_PER_SEC; | 854 | stamp_xsec += (u64) xtime.tv_sec * XSEC_PER_SEC; |