summaryrefslogtreecommitdiff
path: root/arch/mips
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2026-07-28 10:09:38 +0200
committerIngo Molnar <mingo@kernel.org>2026-07-28 10:09:39 +0200
commit5bf709e5de4e0f861f5f3b2e8316984f0da8a218 (patch)
treea296a055ecc8e98cfd4bf8fd942acb67ade965fb /arch/mips
parentde0fa73ac2bd1ab81e46c4d3cf7e8686325a335b (diff)
parentecacc9c8d3ed0f63065f4a1e94bfd8bf65a3ffaf (diff)
downloadlinux-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/Kconfig1
-rw-r--r--arch/mips/kernel/vdso.c4
-rw-r--r--arch/mips/vdso/vdso.lds.S2
-rw-r--r--arch/mips/vdso/vgettimeofday.c3
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)