Merge branch 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 9 Dec 2009 03:28:09 +0000 (19:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 9 Dec 2009 03:28:09 +0000 (19:28 -0800)
* '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

1  2 
arch/powerpc/kernel/time.c
arch/x86/kernel/vsyscall_64.c
include/linux/clocksource.h
kernel/time/timekeeping.c

Simple merge
Simple merge
index 279c5478e8a6aaf7c4a6944166dcc22eb708d5ed,95e4995d99879f921b3f287ffae429671f9bba4d..8a4a130cc19698ab8a03c6c6344e3b24f42932f8
@@@ -281,21 -279,13 +281,23 @@@ extern void clocksource_resume(void)
  extern struct clocksource * __init __weak clocksource_default_clock(void);
  extern void clocksource_mark_unstable(struct clocksource *cs);
  
 +extern void
 +clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec);
 +
 +static inline void
 +clocksource_calc_mult_shift(struct clocksource *cs, u32 freq, u32 minsec)
 +{
 +      return clocks_calc_mult_shift(&cs->mult, &cs->shift, freq,
 +                                    NSEC_PER_SEC, minsec);
 +}
 +
  #ifdef CONFIG_GENERIC_TIME_VSYSCALL
- extern void update_vsyscall(struct timespec *ts, struct clocksource *c);
+ extern void
+ update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult);
  extern void update_vsyscall_tz(void);
  #else
- static inline void update_vsyscall(struct timespec *ts, struct clocksource *c)
+ static inline void
+ update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult)
  {
  }
  
index d1aebd73b19146795a4589f6c38ffcf6268c0335,2a6d3e3e2c3eceedcbcf42c98439acb656e0dede..af4135f058254b0607fc2594f2c52ae6355e76b1
@@@ -839,8 -807,11 +839,8 @@@ void update_wall_time(void
        timekeeper.ntp_error += timekeeper.xtime_nsec <<
                                timekeeper.ntp_error_shift;
  
 -      nsecs = clocksource_cyc2ns(offset, timekeeper.mult, timekeeper.shift);
 -      update_xtime_cache(nsecs);
 -
        /* check to see if there is a new clocksource to use */
-       update_vsyscall(&xtime, timekeeper.clock);
+       update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
  }
  
  /**