lib/vdso: Update coarse timekeeper unconditionally
authorThomas Gleixner <tglx@linutronix.de>
Tue, 14 Jan 2020 18:52:39 +0000 (19:52 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 17 Jan 2020 14:53:50 +0000 (15:53 +0100)
commit9f24c540f7f8eb3a981528da9a9a636a5bdf5987
tree7ad3b8589d6f5b6c405f2f21dc10108fbc619447
parent9a6b55ac4a44060bcb782baf002859b2a2c63267
lib/vdso: Update coarse timekeeper unconditionally

The low resolution parts of the VDSO, i.e.:

  clock_gettime(CLOCK_*_COARSE), clock_getres(), time()

can be used even if there is no VDSO capable clocksource.

But if an architecture opts out of the VDSO data update then this
information becomes stale. This affects ARM when there is no architected
timer available. The lack of update causes userspace to use stale data
forever.

Make the update of the low resolution parts unconditional and only skip
the update of the high resolution parts if the architecture requests it.

Fixes: 44f57d788e7d ("timekeeping: Provide a generic update_vsyscall() implementation")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20200114185946.765577901@linutronix.de
kernel/time/vsyscall.c