linux/drivers/clocksource
Linus Torvalds 104a813376 VDSO updates:
- Consolidate the VDSO datastore further and provide support for
    mlock_all() and prefaulting.
 
  - Provide 32-bit legacy time related functionality only if
    CONFIG_COMPAT_32BIT_TIME is enabled. The config switch exists, but
    architecture code still exposes the legacy functionality even disabled.
 
    Clean this up by adding the missing guards and validating at build time
    that the VDSO is legacy free if disabled.
 
  - Consolidate the VDSO related config options in core and drivers, which
    removes some non-sensical dependencies and quite an amount of #ifdeffery.
 
  - Clean up the PAGE_SIZE definition maze
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCxfkQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoSQkEADEOmcrm3vwMbaElrAfQRp4MOQMnDpKPCDa
 0EwdkXKJyqfOGx1PNKbcWZe10qShpXqyz+q3MUbHiOVh7KxkaGj0GOA/+xD+Tgs5
 RAFXCq+CY4Ccjix7vlyOBLvGgomuznAtRDCFprVq5OTXyQfVvS++5SHzaU/0xXiY
 ZZEInrFP61BEJ8LJycpoN5431EBcUX7XpSkr9eHtuSOslOBzbTEtBbDp0AjDGse0
 5qM/oZDufZDQQr31kVQiL0dN9bBWwdGNtBwZBjsf6KioY9M00LO0E9twSCSrI39F
 kgD2N97RDjTewu/zEe0fvCDVypqel2mBvjfiYU4c8g6pprdJ4Hq1qMcDAtMBUDBZ
 9jR8B09eYZwHLdbM5PFjiMf9d6p25P7X+twFI9Hylcm1YZtM4OTnamDhQOQDp1Fd
 QdrFevXg1zvYVi1rrDYarcPfg/tGsetOTujMQ1m50/AJZOoEdcX9jZR/wfdW8ti6
 X9TIn3SDzhauXkmeR86tHxtOmHDirVfBWCCCEyVT2YzGIIje25cf266fCPdcGRYl
 kzhtycg8LqpTRMWjhlaf56NtD9qQlbvDY8L23tQLJUYhDp8xOxqyuRPRdpJVM0b3
 4vp/Z8Sgz8tpEHO2ARsXfuu2CzilTBH0B2KL3f+a8CwpzIEadjIfc+6EEYqwgOAn
 +/RhckFp/A==
 =jHl1
 -----END PGP SIGNATURE-----

Merge tag 'timers-vdso-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull VDSO updates from Thomas Gleixner:

 - Consolidate the VDSO datastore further and provide support for
   mlock_all() and prefaulting.

 - Provide 32-bit legacy time related functionality only if
   CONFIG_COMPAT_32BIT_TIME is enabled. The config switch exists,
   but architecture code still exposes the legacy functionality even
   disabled.

   Clean this up by adding the missing guards and validating at build
   time that the VDSO is legacy free if disabled.

 - Consolidate the VDSO related config options in core and drivers,
   which removes some non-sensical dependencies and quite an amount of
   #ifdeffery.

 - Clean up the PAGE_SIZE definition maze

* tag 'timers-vdso-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
  random: vDSO: Drop custom PAGE_SIZE definitions
  LoongArch: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/timer-riscv: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/arm_arch_timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/mips-gic-timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  MIPS: csrc-r4k: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  vDSO: Make clockmode constants available without CONFIG_GENERIC_GETTIMEOFDAY
  kbuild: Support generated asm-headers in subdirectories
  vdso: Rename HAVE_GENERIC_VDSO to VDSO_DATASTORE
  vdso: Drop HAVE_GENERIC_VDSO from architecture kconfig files
  vdso: Automatically select HAVE_GENERIC_VDSO if necessary
  MIPS: vdso: Stop using CONFIG_HAVE_GENERIC_VDSO
  vdso: Remove the dependency on HAVE_GENERIC_VDSO from ARCH_HAS_VDSO_ARCH_DATA
  futex: Remove dependency on HAVE_GENERIC_VDSO from FUTEX_ROBUST_UNLOCK
  vdso/gettimeofday: Verify COMPAT_32BIT_TIME interactions
  sparc: vdso: Respect COMPAT_32BIT_TIME
  MIPS: VDSO: Respect COMPAT_32BIT_TIME
  powerpc/vdso: Respect COMPAT_32BIT_TIME
  ARM: VDSO: Respect COMPAT_32BIT_TIME
  arm64: vdso32: Respect COMPAT_32BIT_TIME
  ...
2026-08-18 16:56:25 -07:00
..
acpi_pm.c clocksource: Rewrite watchdog code completely 2026-03-20 13:36:32 +01:00
arc_timer.c clocksource/drivers/arc_timer: Eliminate redefined macro error 2021-10-16 22:15:01 +02:00
arm_arch_timer_mmio.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
arm_arch_timer.c VDSO updates: 2026-08-18 16:56:25 -07:00
arm_global_timer.c clocksource/drivers/arm_global_timer: Add auto-detection for initial prescaler values 2025-09-23 12:41:58 +02:00
armv7m_systick.c
asm9260_timer.c clocksource/drivers/asm9260: Add missing clk_disable_unprepare in asm9260_timer_init 2024-09-06 14:49:21 +02:00
bcm_kona_timer.c clocksource/drivers/bcm_kona: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
bcm2835_timer.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clksrc_st_lpc.c
clksrc-dbx500-prcmu.c timekeeping, clocksource: Fix various typos in comments 2021-03-22 23:06:48 +01:00
clps711x-timer.c clocksource/drivers/clps711x: Do not unmap clocksource MMIO 2026-08-13 18:13:15 +02:00
dummy_timer.c
dw_apb_timer_of.c clocksource/drivers/dw_apb_timer_of: Fix probe failure 2021-12-10 17:46:54 +01:00
dw_apb_timer.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
em_sti.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
exynos_mct.c clocksource/drivers/exynos_mct: Fixed a spelling error 2025-03-07 17:55:59 +01:00
hyperv_timer.c clocksource/hyperv: Implement read_snapshot() for TSC page clocksource 2026-06-05 14:25:03 +02:00
i8253.c clocksource/i8253: Use raw_spinlock_irqsave() in clockevent_i8253_disable() 2025-05-05 15:34:49 +02:00
ingenic-ost.c clocksource/drivers/ingenic: Use devm_clk_get_enabled() helpers 2024-09-06 14:49:20 +02:00
ingenic-sysost.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
ingenic-timer.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
jcore-pit.c irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request 2025-02-17 23:27:49 +01:00
Kconfig clocksource: move NXP timer selection to drivers/clocksource 2026-06-10 07:26:07 +02:00
Makefile clocksource/drivers: Add Realtek system timer driver 2025-11-26 11:25:15 +01:00
mips-gic-timer.c clocksource/drivers/mips-gic-timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery 2026-08-10 16:25:21 +02:00
mmio.c clocksource/drivers/mmio: Make the code compatible with modules 2026-04-03 10:52:05 +02:00
mps2-timer.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mxs_timer.c clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined 2021-01-18 22:28:59 +01:00
nomadik-mtu.c clocksource: Explicitly include correct DT includes 2023-08-28 13:30:57 -05:00
numachip.c
renesas-ostm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
samsung_pwm_timer.c clocksource/drivers/samsung_pwm: Switch to raw_spinlock_t type 2026-08-13 18:13:15 +02:00
scx200_hrt.c clocksource/drivers/scx200: Add module owner 2025-09-23 10:21:24 +02:00
sh_cmt.c clocksource/drivers/sh_cmt: Use named initializers for platform_device_id arrays 2026-08-13 18:12:29 +02:00
sh_mtu2.c clocksource/drivers/sh_mtu2: Drop unused assignment of platform_device_id 2026-08-13 18:12:21 +02:00
sh_tmu.c clocksource/drivers/sh_cmt: Use named initializers for platform_device_id arrays 2026-08-13 18:12:29 +02:00
timer-armada-370-xp.c clocksource/drivers/armada: Unwind timer clock on init failure 2026-08-13 18:13:15 +02:00
timer-atmel-pit.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-atmel-st.c
timer-atmel-tcb.c clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-10-13 12:56:50 +02:00
timer-cadence-ttc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-clint.c riscv: Use IPIs for remote cache/TLB flushes by default 2024-04-29 10:49:26 -07:00
timer-cs5535.c clocksource/drivers/cs5535: Add module owner 2025-09-23 10:52:23 +02:00
timer-davinci.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-digicolor.c clocksource/drivers/digicolor: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-econet-en751221.c clocksource/timer-econet-en751221: Convert comma to semicolon 2025-09-23 10:56:13 +02:00
timer-ep93xx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-fsl-ftm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-fttmr010.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-goldfish.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-gx6605s.c
timer-gxp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-imx-gpt.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-imx-sysctr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-imx-tpm.c clocksource/drivers/imx-tpm: Fix next event not taking effect sometime 2024-09-02 10:04:15 +02:00
timer-integrator-ap.c clocksource: Explicitly include correct DT includes 2023-08-28 13:30:57 -05:00
timer-ixp4xx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-keystone.c
timer-loongson1-pwm.c clocksource/drivers/loongson1: Set variable ls1x_timer_lock storage-class-specifier to static 2023-08-18 12:13:03 +02:00
timer-lpc32xx.c clocksource/drivers/lpc32xx: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-mediatek-cpux.c clocksource/drivers/timer-mediatek: Split out CPUXGPT timers 2023-04-24 16:56:13 +02:00
timer-mediatek.c clocksource/drivers/timer-mediatek: Split out CPUXGPT timers 2023-04-24 16:56:13 +02:00
timer-meson6.c
timer-microchip-pit64b.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-milbeaut.c
timer-mp-csky.c
timer-msc313e.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-npcm7xx.c clocksource/drivers/timer-npcm7xx: Enable timer 1 clock before use 2022-12-02 12:48:28 +01:00
timer-nxp-pit.c clocksource/drivers/nxp-pit: Fix IRQ leak on cpuhp_setup_state error path 2026-08-13 18:13:01 +02:00
timer-nxp-stm.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
timer-of.c clocksource/drivers/timer-of: Make the code compatible with modules 2026-04-03 10:53:29 +02:00
timer-of.h clocksource/drivers/timer-of: Make the code compatible with modules 2026-04-03 10:53:29 +02:00
timer-orion.c arm: Handle KCOV __init vs inline mismatches 2025-07-21 21:43:39 -07:00
timer-owl.c
timer-pistachio.c clocksource/drivers/pistachio: Convert to SPDX identifier 2022-05-18 11:08:59 +02:00
timer-probe.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
timer-pxa.c
timer-qcom.c clocksource/drivers/qcom: Remove clockevents shutdown call on offlining 2024-10-31 10:41:43 +01:00
timer-ralink.c clocksource/drivers/ralink: Fix resource leaks in init error path 2025-11-26 11:24:34 +01:00
timer-rda.c clocksource/drivers/rda: Add sched_clock_register for RDA8810PL SoC 2025-11-26 11:25:11 +01:00
timer-realtek.c clocksource/drivers: Add Realtek system timer driver 2025-11-26 11:25:15 +01:00
timer-riscv.c clocksource/drivers/timer-riscv: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery 2026-08-10 16:25:21 +02:00
timer-rockchip.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-rtl-otto.c clocksource/drivers/rtl-otto: Change driver to use __raw reads and writes 2026-08-13 18:13:15 +02:00
timer-sp.h clocksource/drivers/sp804: Enable Hisilicon sp804 timer 64bit mode 2020-09-24 10:51:04 +02:00
timer-sp804.c clocksource/drivers/timer-sp804: Fix an Oops when read_current_timer is called on ARM32 platforms where the SP804 is not registered as the sched_clock. 2026-01-20 18:06:54 +01:00
timer-sprd.c clocksource/drivers/sprd: Enable register for timer counter from 32 bit to 64 bit 2025-11-26 11:24:26 +01:00
timer-stm32-lp.c clocksource/drivers/stm32-lp: Drop unused module alias 2025-11-26 11:25:15 +01:00
timer-stm32.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timer-sun4i.c clocksource/drivers/timer-sun4i: Advertise a real minimum delta 2026-08-13 18:13:01 +02:00
timer-sun5i.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
timer-tegra.c clocksource/drivers/timer-tegra: Remove clockevents shutdown call on offlining 2024-10-31 10:41:43 +01:00
timer-tegra186.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
timer-ti-32k.c clocksource/drivers/ti-32K: Fix misuse of "/**" comment 2024-01-22 13:16:32 +01:00
timer-ti-dm-systimer.c clocksource/drivers/timer-ti-dm: Fix property name in comment 2026-06-03 10:05:29 +02:00
timer-ti-dm.c clocksource: Remove redundant dev_err()/dev_err_probe() 2026-08-13 18:13:01 +02:00
timer-versatile.c
timer-vt8500.c
timer-zevio.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00