| From 9a6b55ac4a44060bcb782baf002859b2a2c63267 Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Tue, 14 Jan 2020 19:52:38 +0100 |
| Subject: lib/vdso: Make __arch_update_vdso_data() logic understandable |
| |
| From: Thomas Gleixner <tglx@linutronix.de> |
| |
| commit 9a6b55ac4a44060bcb782baf002859b2a2c63267 upstream. |
| |
| The function name suggests that this is a boolean checking whether the |
| architecture asks for an update of the VDSO data, but it works the other |
| way round. To spare further confusion invert the logic. |
| |
| Fixes: 44f57d788e7d ("timekeeping: Provide a generic update_vsyscall() implementation") |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Link: https://lore.kernel.org/r/20200114185946.656652824@linutronix.de |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/include/asm/vdso/vsyscall.h | 4 ++-- |
| include/asm-generic/vdso/vsyscall.h | 4 ++-- |
| kernel/time/vsyscall.c | 2 +- |
| 3 files changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/arch/arm/include/asm/vdso/vsyscall.h |
| +++ b/arch/arm/include/asm/vdso/vsyscall.h |
| @@ -34,9 +34,9 @@ struct vdso_data *__arm_get_k_vdso_data( |
| #define __arch_get_k_vdso_data __arm_get_k_vdso_data |
| |
| static __always_inline |
| -int __arm_update_vdso_data(void) |
| +bool __arm_update_vdso_data(void) |
| { |
| - return !cntvct_ok; |
| + return cntvct_ok; |
| } |
| #define __arch_update_vdso_data __arm_update_vdso_data |
| |
| --- a/include/asm-generic/vdso/vsyscall.h |
| +++ b/include/asm-generic/vdso/vsyscall.h |
| @@ -12,9 +12,9 @@ static __always_inline struct vdso_data |
| #endif /* __arch_get_k_vdso_data */ |
| |
| #ifndef __arch_update_vdso_data |
| -static __always_inline int __arch_update_vdso_data(void) |
| +static __always_inline bool __arch_update_vdso_data(void) |
| { |
| - return 0; |
| + return true; |
| } |
| #endif /* __arch_update_vdso_data */ |
| |
| --- a/kernel/time/vsyscall.c |
| +++ b/kernel/time/vsyscall.c |
| @@ -84,7 +84,7 @@ void update_vsyscall(struct timekeeper * |
| struct vdso_timestamp *vdso_ts; |
| u64 nsec; |
| |
| - if (__arch_update_vdso_data()) { |
| + if (!__arch_update_vdso_data()) { |
| /* |
| * Some architectures might want to skip the update of the |
| * data page. |