Message ID | 1407858749-15422-1-git-send-email-john.stultz@linaro.org |
---|---|
State | Superseded |
Headers | show |
On Tue, 12 Aug 2014, John Stultz wrote: > Benjamin Herrenschmidt pointed out that I firuther missed s/firuther/further ? > modifying update_vsyscall after the wall_to_mono value was > changed to a timespec64. This causes issues on powerpc32, > which expects a 32bit timespec. > > This patch fixes the problem my properly converting from s/my/by/ > a timespec64 to a timespec before passing the value on to > the arch-specific vsyscall logic. Other than that, please add my Reviewed-by, and send it to Linus either as patch or pull request as I'm really in vacation mode NOW. > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Signed-off-by: John Stultz <john.stultz@linaro.org> > --- > kernel/time/timekeeping.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c > index f36b028..fb4a9c2 100644 > --- a/kernel/time/timekeeping.c > +++ b/kernel/time/timekeeping.c > @@ -338,10 +338,11 @@ EXPORT_SYMBOL_GPL(ktime_get_mono_fast_ns); > > static inline void update_vsyscall(struct timekeeper *tk) > { > - struct timespec xt; > + struct timespec xt, wm; > > xt = timespec64_to_timespec(tk_xtime(tk)); > - update_vsyscall_old(&xt, &tk->wall_to_monotonic, tk->tkr.clock, tk->tkr.mult, > + wm = timespec64_to_timespec(tk->wall_to_monotonic); > + update_vsyscall_old(&xt, &wm, tk->tkr.clock, tk->tkr.mult, > tk->tkr.cycle_last); > } > > -- > 1.9.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index f36b028..fb4a9c2 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -338,10 +338,11 @@ EXPORT_SYMBOL_GPL(ktime_get_mono_fast_ns); static inline void update_vsyscall(struct timekeeper *tk) { - struct timespec xt; + struct timespec xt, wm; xt = timespec64_to_timespec(tk_xtime(tk)); - update_vsyscall_old(&xt, &tk->wall_to_monotonic, tk->tkr.clock, tk->tkr.mult, + wm = timespec64_to_timespec(tk->wall_to_monotonic); + update_vsyscall_old(&xt, &wm, tk->tkr.clock, tk->tkr.mult, tk->tkr.cycle_last); }
Benjamin Herrenschmidt pointed out that I firuther missed modifying update_vsyscall after the wall_to_mono value was changed to a timespec64. This causes issues on powerpc32, which expects a 32bit timespec. This patch fixes the problem my properly converting from a timespec64 to a timespec before passing the value on to the arch-specific vsyscall logic. Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: John Stultz <john.stultz@linaro.org> --- kernel/time/timekeeping.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)