diff options
| author | Ingo Molnar <mingo@kernel.org> | 2026-07-28 10:09:38 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2026-07-28 10:09:39 +0200 |
| commit | 5bf709e5de4e0f861f5f3b2e8316984f0da8a218 (patch) | |
| tree | a296a055ecc8e98cfd4bf8fd942acb67ade965fb /arch/x86 | |
| parent | de0fa73ac2bd1ab81e46c4d3cf7e8686325a335b (diff) | |
| parent | ecacc9c8d3ed0f63065f4a1e94bfd8bf65a3ffaf (diff) | |
| download | linux-next-5bf709e5de4e0f861f5f3b2e8316984f0da8a218.tar.gz linux-next-5bf709e5de4e0f861f5f3b2e8316984f0da8a218.zip | |
Merge branch into tip/master: 'timers/vdso'
# New commits in timers/vdso:
ecacc9c8d3ed ("vdso: Rename HAVE_GENERIC_VDSO to VDSO_DATASTORE")
52447180f4fb ("vdso: Drop HAVE_GENERIC_VDSO from architecture kconfig files")
faeff8d416c4 ("vdso: Automatically select HAVE_GENERIC_VDSO if necessary")
8c0015572c61 ("MIPS: vdso: Stop using CONFIG_HAVE_GENERIC_VDSO")
a92426375870 ("vdso: Remove the dependency on HAVE_GENERIC_VDSO from ARCH_HAS_VDSO_ARCH_DATA")
2558084d2b03 ("futex: Remove dependency on HAVE_GENERIC_VDSO from FUTEX_ROBUST_UNLOCK")
369cecd238ac ("vdso/gettimeofday: Verify COMPAT_32BIT_TIME interactions")
2700297b69fe ("sparc: vdso: Respect COMPAT_32BIT_TIME")
377e3f2d4130 ("MIPS: VDSO: Respect COMPAT_32BIT_TIME")
e01abc70af38 ("powerpc/vdso: Respect COMPAT_32BIT_TIME")
95216f4647e7 ("ARM: VDSO: Respect COMPAT_32BIT_TIME")
abb1537388ba ("arm64: vdso32: Respect COMPAT_32BIT_TIME")
1a4660da3130 ("x86/vdso: Respect COMPAT_32BIT_TIME")
f8b946772554 ("vdso/gettimeofday: Validate system call existence for time() and gettimeofday()")
dce21fb3d570 ("time: Respect COMPAT_32BIT_TIME for old time type functions")
0b50763e8439 ("vdso/datastore: Simplify the mapping logic for VDSO_TIME_PAGE_OFFSET")
c27e727c9a60 ("vdso/datastore: Allow prefaulting by mlockall()")
9ab500d47f5f ("vdso/datastore: Explicitly prevent remote access to timens vvar page")
43648f9f3a67 ("vdso/datastore: Map zeroed pages for unavailable data")
7557273419dd ("vdso/datastore: Map pages in terms of the faults pgoff")
ff868f43eb8f ("vdso/datastore: Rename data pages variable")
02475538bec2 ("vdso: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86')
| -rw-r--r-- | arch/x86/Kconfig | 1 | ||||
| -rw-r--r-- | arch/x86/entry/vdso/common/vclock_gettime.c | 20 | ||||
| -rw-r--r-- | arch/x86/entry/vdso/vdso32/vdso32.lds.S | 2 |
3 files changed, 14 insertions, 9 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f3f8ad107eeb..e725b439d0a2 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -302,7 +302,6 @@ config X86 select HAVE_UNSTABLE_SCHED_CLOCK select HAVE_UNWIND_USER_FP if X86_64 select HAVE_USER_RETURN_NOTIFIER - select HAVE_GENERIC_VDSO select VDSO_GETRANDOM if X86_64 select HOTPLUG_PARALLEL if SMP && X86_64 select HOTPLUG_SMT if SMP diff --git a/arch/x86/entry/vdso/common/vclock_gettime.c b/arch/x86/entry/vdso/common/vclock_gettime.c index 57066f346b3f..304dbd1f9db4 100644 --- a/arch/x86/entry/vdso/common/vclock_gettime.c +++ b/arch/x86/entry/vdso/common/vclock_gettime.c @@ -15,6 +15,7 @@ #include "lib/vdso/gettimeofday.c" +#if defined(__x86_64__) || defined(CONFIG_COMPAT_32BIT_TIME) int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) { return __cvdso_gettimeofday(tv, tz); @@ -29,6 +30,7 @@ __kernel_old_time_t __vdso_time(__kernel_old_time_t *t) } __kernel_old_time_t time(__kernel_old_time_t *t) __attribute__((weak, alias("__vdso_time"))); +#endif /* CONFIG_COMPAT_32BIT_TIME */ #if defined(CONFIG_X86_64) && !defined(BUILD_VDSO32_64) @@ -51,6 +53,7 @@ int clock_getres(clockid_t, struct __kernel_timespec *) #else /* i386 only */ +#ifdef CONFIG_COMPAT_32BIT_TIME int __vdso_clock_gettime(clockid_t clock, struct old_timespec32 *ts) { return __cvdso_clock_gettime32(clock, ts); @@ -59,14 +62,6 @@ int __vdso_clock_gettime(clockid_t clock, struct old_timespec32 *ts) int clock_gettime(clockid_t, struct old_timespec32 *) __attribute__((weak, alias("__vdso_clock_gettime"))); -int __vdso_clock_gettime64(clockid_t clock, struct __kernel_timespec *ts) -{ - return __cvdso_clock_gettime(clock, ts); -} - -int clock_gettime64(clockid_t, struct __kernel_timespec *) - __attribute__((weak, alias("__vdso_clock_gettime64"))); - int __vdso_clock_getres(clockid_t clock, struct old_timespec32 *res) { return __cvdso_clock_getres_time32(clock, res); @@ -74,6 +69,15 @@ int __vdso_clock_getres(clockid_t clock, struct old_timespec32 *res) int clock_getres(clockid_t, struct old_timespec32 *) __attribute__((weak, alias("__vdso_clock_getres"))); +#endif /* CONFIG_COMPAT_32BIT_TIME */ + +int __vdso_clock_gettime64(clockid_t clock, struct __kernel_timespec *ts) +{ + return __cvdso_clock_gettime(clock, ts); +} + +int clock_gettime64(clockid_t, struct __kernel_timespec *) + __attribute__((weak, alias("__vdso_clock_gettime64"))); int __vdso_clock_getres_time64(clockid_t clock, struct __kernel_timespec *ts) { diff --git a/arch/x86/entry/vdso/vdso32/vdso32.lds.S b/arch/x86/entry/vdso/vdso32/vdso32.lds.S index cee8f7f9fe80..00629192db56 100644 --- a/arch/x86/entry/vdso/vdso32/vdso32.lds.S +++ b/arch/x86/entry/vdso/vdso32/vdso32.lds.S @@ -23,10 +23,12 @@ VERSION { LINUX_2.6 { global: +#ifdef CONFIG_COMPAT_32BIT_TIME __vdso_clock_gettime; __vdso_gettimeofday; __vdso_time; __vdso_clock_getres; +#endif /* CONFIG_COMPAT_32BIT_TIME */ __vdso_clock_gettime64; __vdso_clock_getres_time64; __vdso_getcpu; |
