vdso: Drop Kconfig GENERIC_VDSO_DATA_STORE

All users of the generic vDSO library also use the generic vDSO datastore.

Remove the now unnecessary Kconfig symbol.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/all/20250826-vdso-cleanups-v1-9-d9b65750e49f@linutronix.de
This commit is contained in:
Thomas Weißschuh
2025-08-26 08:17:12 +02:00
committed by Thomas Gleixner
parent bb5bc7bfab
commit 7b338f6d4e
14 changed files with 3 additions and 25 deletions

View File

@@ -1609,7 +1609,7 @@ config HAVE_SPARSE_SYSCALL_NR
related optimizations for a given architecture. related optimizations for a given architecture.
config ARCH_HAS_VDSO_ARCH_DATA config ARCH_HAS_VDSO_ARCH_DATA
depends on GENERIC_VDSO_DATA_STORE depends on HAVE_GENERIC_VDSO
bool bool
config ARCH_HAS_VDSO_TIME_DATA config ARCH_HAS_VDSO_TIME_DATA

View File

@@ -927,7 +927,6 @@ config VDSO
select HAVE_GENERIC_VDSO select HAVE_GENERIC_VDSO
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_DATA_STORE
help help
Place in the process address space an ELF shared object Place in the process address space an ELF shared object
providing fast implementations of gettimeofday and providing fast implementations of gettimeofday and

View File

@@ -162,7 +162,6 @@ config ARM64
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_DATA_STORE
select GENERIC_VDSO_TIME_NS select GENERIC_VDSO_TIME_NS
select HARDIRQS_SW_RESEND select HARDIRQS_SW_RESEND
select HAS_IOPORT select HAS_IOPORT

View File

@@ -108,7 +108,6 @@ config LOONGARCH
select GENERIC_SCHED_CLOCK select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_DATA_STORE
select GENERIC_VDSO_TIME_NS select GENERIC_VDSO_TIME_NS
select GPIOLIB select GPIOLIB
select HAS_IOPORT select HAS_IOPORT

View File

@@ -51,7 +51,6 @@ config MIPS
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_IDLE_POLL_SETUP select GENERIC_IDLE_POLL_SETUP
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_DATA_STORE
select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
select HAS_IOPORT if !NO_IOPORT_MAP || ISA select HAS_IOPORT if !NO_IOPORT_MAP || ISA
select HAVE_ARCH_COMPILER_H select HAVE_ARCH_COMPILER_H

View File

@@ -207,7 +207,6 @@ config PPC
select GENERIC_PCI_IOMAP if PCI select GENERIC_PCI_IOMAP if PCI
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_DATA_STORE
select GENERIC_VDSO_TIME_NS select GENERIC_VDSO_TIME_NS
select HAS_IOPORT if PCI select HAS_IOPORT if PCI
select HAVE_ARCH_AUDITSYSCALL select HAVE_ARCH_AUDITSYSCALL

View File

@@ -121,7 +121,6 @@ config RISCV
select GENERIC_SCHED_CLOCK select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL if GENERIC_GETTIMEOFDAY select GENERIC_TIME_VSYSCALL if GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_DATA_STORE if HAVE_GENERIC_VDSO
select GENERIC_VDSO_TIME_NS if GENERIC_GETTIMEOFDAY select GENERIC_VDSO_TIME_NS if GENERIC_GETTIMEOFDAY
select HARDIRQS_SW_RESEND select HARDIRQS_SW_RESEND
select HAS_IOPORT if MMU select HAS_IOPORT if MMU

View File

@@ -167,7 +167,6 @@ config S390
select GENERIC_GETTIMEOFDAY select GENERIC_GETTIMEOFDAY
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_DATA_STORE
select GENERIC_VDSO_TIME_NS select GENERIC_VDSO_TIME_NS
select GENERIC_IOREMAP if PCI select GENERIC_IOREMAP if PCI
select HAVE_ALIGNED_STRUCT_PAGE select HAVE_ALIGNED_STRUCT_PAGE

View File

@@ -181,7 +181,6 @@ config X86
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_DATA_STORE
select GENERIC_VDSO_TIME_NS select GENERIC_VDSO_TIME_NS
select GENERIC_VDSO_OVERFLOW_PROTECT select GENERIC_VDSO_OVERFLOW_PROTECT
select GUP_GET_PXX_LOW_HIGH if X86_PAE select GUP_GET_PXX_LOW_HIGH if X86_PAE

View File

@@ -4,8 +4,6 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#ifdef CONFIG_GENERIC_VDSO_DATA_STORE
#ifndef __arch_get_vdso_u_time_data #ifndef __arch_get_vdso_u_time_data
static __always_inline const struct vdso_time_data *__arch_get_vdso_u_time_data(void) static __always_inline const struct vdso_time_data *__arch_get_vdso_u_time_data(void)
{ {
@@ -20,8 +18,6 @@ static __always_inline const struct vdso_rng_data *__arch_get_vdso_u_rng_data(vo
} }
#endif #endif
#endif /* CONFIG_GENERIC_VDSO_DATA_STORE */
#ifndef __arch_update_vdso_clock #ifndef __arch_update_vdso_clock
static __always_inline void __arch_update_vdso_clock(struct vdso_clock *vc) static __always_inline void __arch_update_vdso_clock(struct vdso_clock *vc)
{ {

View File

@@ -31,7 +31,7 @@ struct arch_vdso_time_data {};
#if defined(CONFIG_ARCH_HAS_VDSO_ARCH_DATA) #if defined(CONFIG_ARCH_HAS_VDSO_ARCH_DATA)
#include <asm/vdso/arch_data.h> #include <asm/vdso/arch_data.h>
#elif defined(CONFIG_GENERIC_VDSO_DATA_STORE) #else
struct vdso_arch_data { struct vdso_arch_data {
/* Needed for the generic code, never actually used at runtime */ /* Needed for the generic code, never actually used at runtime */
char __unused; char __unused;
@@ -164,7 +164,6 @@ struct vdso_rng_data {
* With the hidden visibility, the compiler simply generates a PC-relative * With the hidden visibility, the compiler simply generates a PC-relative
* relocation, and this is what we need. * relocation, and this is what we need.
*/ */
#ifdef CONFIG_GENERIC_VDSO_DATA_STORE
extern struct vdso_time_data vdso_u_time_data __attribute__((visibility("hidden"))); extern struct vdso_time_data vdso_u_time_data __attribute__((visibility("hidden")));
extern struct vdso_rng_data vdso_u_rng_data __attribute__((visibility("hidden"))); extern struct vdso_rng_data vdso_u_rng_data __attribute__((visibility("hidden")));
extern struct vdso_arch_data vdso_u_arch_data __attribute__((visibility("hidden"))); extern struct vdso_arch_data vdso_u_arch_data __attribute__((visibility("hidden")));
@@ -185,8 +184,6 @@ enum vdso_pages {
VDSO_NR_PAGES VDSO_NR_PAGES
}; };
#endif /* CONFIG_GENERIC_VDSO_DATA_STORE */
/* /*
* The generic vDSO implementation requires that gettimeofday.h * The generic vDSO implementation requires that gettimeofday.h
* provides: * provides:

View File

@@ -31,8 +31,3 @@ config VDSO_GETRANDOM
bool bool
help help
Selected by architectures that support vDSO getrandom(). Selected by architectures that support vDSO getrandom().
config GENERIC_VDSO_DATA_STORE
bool
help
Selected by architectures that use the generic vDSO data store.

View File

@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_GENERIC_VDSO_DATA_STORE) += datastore.o obj-$(CONFIG_HAVE_GENERIC_VDSO) += datastore.o

View File

@@ -108,13 +108,11 @@ bool vdso_get_timestamp(const struct vdso_time_data *vd, const struct vdso_clock
return true; return true;
} }
#ifdef CONFIG_GENERIC_VDSO_DATA_STORE
static __always_inline static __always_inline
const struct vdso_time_data *__arch_get_vdso_u_timens_data(const struct vdso_time_data *vd) const struct vdso_time_data *__arch_get_vdso_u_timens_data(const struct vdso_time_data *vd)
{ {
return (void *)vd + PAGE_SIZE; return (void *)vd + PAGE_SIZE;
} }
#endif /* CONFIG_GENERIC_VDSO_DATA_STORE */
static __always_inline static __always_inline
bool do_hres_timens(const struct vdso_time_data *vdns, const struct vdso_clock *vcns, bool do_hres_timens(const struct vdso_time_data *vdns, const struct vdso_clock *vcns,