[PATCH v7 0/5] vdso: Keep the CLOCK_AUX base at full precision
From: Zhan Xusheng
Date: Fri Oct 02 2026 - 11:34:30 EST
v6 still broke the m68k build. I had read the individual 0-day mails for
the BITS_PER_TYPE failure and stopped there, instead of the
"[tip:timers:vdso] BUILD REGRESSION ca46a07c4b68" summary, which lists
both failures and was out 37 minutes before I posted v6. Sorry.
The remaining one is patch 1: OPTIMIZER_HIDE_VAR() lives in
linux/compiler.h and vdso/math64.h did not include it. vdso/math64.h is
reached from linux/math64.h, whose includes are linux/types.h,
linux/math.h, asm/div64.h and vdso/math64.h; none of them guarantees
linux/compiler.h. x86 happens to get it through
asm/div64.h -> linux/log2.h; m68k's asm/div64.h only pulls in
asm-generic/div64.h and linux/types.h, so the macro is undeclared and
-Werror=implicit-function-declaration kills the build. Patch 1 now
includes linux/compiler.h.
Changes since v6:
- Patch 1: include linux/compiler.h, with the robot tags
(Thomas Weissschuh, kernel test robot)
- Patch 4: picked up Thomas' Reviewed-by
- No other change
Reproduced on m68k defconfig by compiling a translation unit that includes
linux/stat.h: two errors at vdso/math64.h without the include, none with
it. Built every commit in order under the same check, all clean. x86-64
kernel + lib + vDSO, arm64 vDSO and powerpc vDSO build clean,
tools/perf/check-headers.sh is quiet, and checkpatch --strict reports
0/0/0 on all five.
vdso/math64.h is not tracked by check-headers.sh, so unlike patch 4 this
one needs no tools-side sync.
v6: https://patch.msgid.link/20260930154500.722828-1-zhanxusheng@xxxxxxxxxx
Zhan Xusheng (5):
vdso/math64: Use OPTIMIZER_HIDE_VAR() in __iter_div_u64_rem()
vdso/math64: Add and use __iter_div64_u64_rem()
vdso/vsyscall: Keep the CLOCK_AUX base scaled
vdso: Move BITS_PER_BYTE and BITS_PER_TYPE() to vdso/bits.h
vdso/gettimeofday: Assert that the clockid fits into the u32 bitmask
include/linux/bits.h | 2 --
include/vdso/bits.h | 2 ++
include/vdso/math64.h | 33 ++++++++++++++++++++++++++++-----
kernel/time/vsyscall.c | 26 ++++++++++----------------
lib/vdso/gettimeofday.c | 2 ++
tools/include/linux/bits.h | 2 --
tools/include/vdso/bits.h | 2 ++
7 files changed, 44 insertions(+), 25 deletions(-)
base-commit: 9b87fdc9af2fbfcdb5c24a64139685ef80f6573f
--
2.43.0