aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>2025-07-01 10:58:01 +0200
committerThomas Gleixner <tglx@linutronix.de>2025-07-18 13:45:32 +0200
commit1a1cd5fe881fdf7b0391e5426f6bfcb663c90dde (patch)
tree621a1967527d80953759400f712666d8d219550d /lib
parentvdso/gettimeofday: Return bool from clock_gettime() helpers (diff)
downloadlinux-1a1cd5fe881fdf7b0391e5426f6bfcb663c90dde.tar.gz
linux-1a1cd5fe881fdf7b0391e5426f6bfcb663c90dde.zip
vdso/gettimeofday: Introduce vdso_clockid_valid()
Move the clock ID validation check into a common helper. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250701-vdso-auxclock-v1-7-df7d9f87b9b8@linutronix.de
Diffstat (limited to 'lib')
-rw-r--r--lib/vdso/gettimeofday.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c
index 32e568db6d5a..0271226aaa5c 100644
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -71,6 +71,12 @@ static inline bool vdso_cycles_ok(u64 cycles)
}
#endif
+static __always_inline bool vdso_clockid_valid(clockid_t clock)
+{
+ /* Check for negative values or invalid clocks */
+ return likely((u32) clock < MAX_CLOCKS);
+}
+
#ifdef CONFIG_TIME_NS
#ifdef CONFIG_GENERIC_VDSO_DATA_STORE
@@ -268,8 +274,7 @@ __cvdso_clock_gettime_common(const struct vdso_time_data *vd, clockid_t clock,
const struct vdso_clock *vc = vd->clock_data;
u32 msk;
- /* Check for negative values or invalid clocks */
- if (unlikely((u32) clock >= MAX_CLOCKS))
+ if (!vdso_clockid_valid(clock))
return false;
/*
@@ -405,8 +410,7 @@ bool __cvdso_clock_getres_common(const struct vdso_time_data *vd, clockid_t cloc
u32 msk;
u64 ns;
- /* Check for negative values or invalid clocks */
- if (unlikely((u32) clock >= MAX_CLOCKS))
+ if (!vdso_clockid_valid(clock))
return false;
if (IS_ENABLED(CONFIG_TIME_NS) &&