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/mips | |
| 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/mips')
| -rw-r--r-- | arch/mips/Kconfig | 1 | ||||
| -rw-r--r-- | arch/mips/kernel/vdso.c | 4 | ||||
| -rw-r--r-- | arch/mips/vdso/vdso.lds.S | 2 | ||||
| -rw-r--r-- | arch/mips/vdso/vgettimeofday.c | 3 |
4 files changed, 7 insertions, 3 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 8555bbf47c63..a06f24317306 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -3163,7 +3163,6 @@ config MIPS_EXTERNAL_TIMER config MIPS_GENERIC_GETTIMEOFDAY def_bool y select GENERIC_GETTIMEOFDAY - select HAVE_GENERIC_VDSO depends on CSRC_R4K || CLKSRC_MIPS_GIC # GCC (at least up to version 9.2) appears to emit function calls that make use # of the GOT when targeting microMIPS, which we can't use in the VDSO due to diff --git a/arch/mips/kernel/vdso.c b/arch/mips/kernel/vdso.c index bd1fc17d3975..29a10045f2b6 100644 --- a/arch/mips/kernel/vdso.c +++ b/arch/mips/kernel/vdso.c @@ -129,7 +129,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) * This ensures that when the kernel updates the VDSO data userland * will observe it without requiring cache invalidations. */ - if (cpu_has_dc_aliases && IS_ENABLED(CONFIG_HAVE_GENERIC_VDSO)) { + if (cpu_has_dc_aliases && IS_ENABLED(CONFIG_MIPS_GENERIC_GETTIMEOFDAY)) { base = __ALIGN_MASK(base, shm_align_mask); base += ((unsigned long)vdso_k_time_data - gic_size) & shm_align_mask; } @@ -137,7 +137,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) data_addr = base + gic_size; vdso_addr = data_addr + VDSO_NR_PAGES * PAGE_SIZE; - if (IS_ENABLED(CONFIG_HAVE_GENERIC_VDSO)) { + if (IS_ENABLED(CONFIG_MIPS_GENERIC_GETTIMEOFDAY)) { vma = vdso_install_vvar_mapping(mm, data_addr); if (IS_ERR(vma)) { ret = PTR_ERR(vma); diff --git a/arch/mips/vdso/vdso.lds.S b/arch/mips/vdso/vdso.lds.S index 278ab6444e98..b11ee493c67f 100644 --- a/arch/mips/vdso/vdso.lds.S +++ b/arch/mips/vdso/vdso.lds.S @@ -97,9 +97,11 @@ VERSION LINUX_2.6 { #ifdef CONFIG_GENERIC_GETTIMEOFDAY global: +#if _MIPS_SIM == _MIPS_SIM_ABI64 || defined(CONFIG_COMPAT_32BIT_TIME) __vdso_clock_gettime; __vdso_gettimeofday; __vdso_clock_getres; +#endif #if _MIPS_SIM != _MIPS_SIM_ABI64 __vdso_clock_gettime64; __vdso_clock_getres_time64; diff --git a/arch/mips/vdso/vgettimeofday.c b/arch/mips/vdso/vgettimeofday.c index 00f9fcfc327e..a1fb06b8973e 100644 --- a/arch/mips/vdso/vgettimeofday.c +++ b/arch/mips/vdso/vgettimeofday.c @@ -12,6 +12,8 @@ #include <vdso/gettime.h> #if _MIPS_SIM != _MIPS_SIM_ABI64 + +#ifdef CONFIG_COMPAT_32BIT_TIME int __vdso_clock_gettime(clockid_t clock, struct old_timespec32 *ts) { @@ -29,6 +31,7 @@ int __vdso_clock_getres(clockid_t clock_id, { return __cvdso_clock_getres_time32(clock_id, res); } +#endif /* CONFIG_COMPAT_32BIT_TIME */ int __vdso_clock_gettime64(clockid_t clock, struct __kernel_timespec *ts) |
