[patch 01/15] lib/vdso: Make __arch_update_vdso_data() logic understandable

From: Thomas Gleixner
Date: Tue Jan 14 2020 - 14:49:57 EST


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@xxxxxxxxxxxxx>
---
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.