diff options
-rw-r--r-- | arch/x86_64/vdso/vclock_gettime.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86_64/vdso/vclock_gettime.c b/arch/x86_64/vdso/vclock_gettime.c index 17f6a00de712..5b54cdfb2b07 100644 --- a/arch/x86_64/vdso/vclock_gettime.c +++ b/arch/x86_64/vdso/vclock_gettime.c | |||
@@ -34,10 +34,11 @@ static long vdso_fallback_gettime(long clock, struct timespec *ts) | |||
34 | 34 | ||
35 | static inline long vgetns(void) | 35 | static inline long vgetns(void) |
36 | { | 36 | { |
37 | long v; | ||
37 | cycles_t (*vread)(void); | 38 | cycles_t (*vread)(void); |
38 | vread = gtod->clock.vread; | 39 | vread = gtod->clock.vread; |
39 | return ((vread() - gtod->clock.cycle_last) * gtod->clock.mult) >> | 40 | v = (vread() - gtod->clock.cycle_last) & gtod->clock.mask; |
40 | gtod->clock.shift; | 41 | return (v * gtod->clock.mult) >> gtod->clock.shift; |
41 | } | 42 | } |
42 | 43 | ||
43 | static noinline int do_realtime(struct timespec *ts) | 44 | static noinline int do_realtime(struct timespec *ts) |