* [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library
@ 2025-11-06 10:01 Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 01/34] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types Thomas Weißschuh
` (37 more replies)
0 siblings, 38 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh, Arnd Bergmann
The generic vDSO provides a lot common functionality shared between
different architectures. SPARC is the last architecture not using it,
preventing some necessary code cleanup.
Make use of the generic infrastructure.
Follow-up to and replacement for Arnd's SPARC vDSO removal patches:
https://lore.kernel.org/lkml/20250707144726.4008707-1-arnd@kernel.org/
SPARC64 can not map .bss into userspace, so the vDSO datapages are
switched over to be allocated dynamically. This requires changes to the
s390 and random subsystem vDSO initialization as preparation.
The random subsystem changes in turn require some cleanup of the vDSO
headers to not end up as ugly #ifdef mess.
Tested on a Niagara T4 and QEMU.
This has a semantic conflict with my series "vdso: Reject absolute
relocations during build" [0]. The last patch of this series expects all
users of the generic vDSO library to use the vdsocheck tool.
This is not the case (yet) for SPARC64. I do have the patches for the
integration, the specifics will depend on which series is applied first.
Based on v6.18-rc1.
[0] https://lore.kernel.org/lkml/20250812-vdso-absolute-reloc-v4-0-61a8b615e5ec@linutronix.de/
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
Changes in v5:
- Merge the patches for 'struct page' mapping and dynamic allocation
- Zero out newly-allocated data pages
- Pick up review tags
- Link to v4: https://lore.kernel.org/r/20251014-vdso-sparc64-generic-2-v4-0-e0607bf49dea@linutronix.de
Changes in v4:
- Rebase on v6.18-rc1.
- Keep inclusion of asm/clocksource.h from linux/clocksource.h
- Reword description of "s390/time: Set up vDSO datapage later"
- Link to v3: https://lore.kernel.org/r/20250917-vdso-sparc64-generic-2-v3-0-3679b1bc8ee8@linutronix.de
Changes in v3:
- Allocate vDSO data pages dynamically (and lots of preparations for that)
- Drop clock_getres()
- Fix 32bit clock_gettime() syscall fallback
- Link to v2: https://lore.kernel.org/r/20250815-vdso-sparc64-generic-2-v2-0-b5ff80672347@linutronix.de
Changes in v2:
- Rebase on v6.17-rc1
- Drop RFC state
- Fix typo in commit message
- Drop duplicate 'select GENERIC_TIME_VSYSCALL'
- Merge "sparc64: time: Remove architecture-specific clocksource data" into the
main conversion patch. It violated the check in __clocksource_register_scale()
- Link to v1: https://lore.kernel.org/r/20250724-vdso-sparc64-generic-2-v1-0-e376a3bd24d1@linutronix.de
---
Arnd Bergmann (1):
clocksource: remove ARCH_CLOCKSOURCE_DATA
Thomas Weißschuh (33):
selftests: vDSO: vdso_test_correctness: Handle different tv_usec types
arm64: vDSO: getrandom: Explicitly include asm/alternative.h
arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h
arm64: vDSO: compat_gettimeofday: Add explicit includes
ARM: vdso: gettimeofday: Add explicit includes
powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h
powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h
LoongArch: vDSO: Explicitly include asm/vdso/vdso.h
MIPS: vdso: Add include guard to asm/vdso/vdso.h
MIPS: vdso: Explicitly include asm/vdso/vdso.h
random: vDSO: Add explicit includes
vdso/gettimeofday: Add explicit includes
vdso/helpers: Explicitly include vdso/processor.h
vdso/datapage: Remove inclusion of gettimeofday.h
vdso/datapage: Trim down unnecessary includes
random: vDSO: trim vDSO includes
random: vDSO: remove ifdeffery
random: vDSO: split out datapage update into helper functions
random: vDSO: only access vDSO datapage after random_init()
s390/time: Set up vDSO datapage later
vdso/datastore: Reduce scope of some variables in vvar_fault()
vdso/datastore: Drop inclusion of linux/mmap_lock.h
vdso/datastore: Allocate data pages dynamically
sparc64: vdso: Link with -z noexecstack
sparc64: vdso: Remove obsolete "fake section table" reservation
sparc64: vdso: Replace code patching with runtime conditional
sparc64: vdso: Move hardware counter read into header
sparc64: vdso: Move syscall fallbacks into header
sparc64: vdso: Introduce vdso/processor.h
sparc64: vdso: Switch to the generic vDSO library
sparc64: vdso2c: Drop sym_vvar_start handling
sparc64: vdso2c: Remove symbol handling
sparc64: vdso: Implement clock_gettime64()
arch/arm/include/asm/vdso/gettimeofday.h | 2 +
arch/arm64/include/asm/vdso/compat_gettimeofday.h | 3 +
arch/arm64/include/asm/vdso/gettimeofday.h | 2 +
arch/arm64/kernel/vdso/vgetrandom.c | 2 +
arch/loongarch/kernel/process.c | 1 +
arch/loongarch/kernel/vdso.c | 1 +
arch/mips/include/asm/vdso/vdso.h | 5 +
arch/mips/kernel/vdso.c | 1 +
arch/powerpc/include/asm/vdso/gettimeofday.h | 1 +
arch/powerpc/include/asm/vdso/processor.h | 3 +
arch/s390/kernel/time.c | 4 +-
arch/sparc/Kconfig | 3 +-
arch/sparc/include/asm/clocksource.h | 9 -
arch/sparc/include/asm/processor.h | 3 +
arch/sparc/include/asm/processor_32.h | 2 -
arch/sparc/include/asm/processor_64.h | 25 --
arch/sparc/include/asm/vdso.h | 2 -
arch/sparc/include/asm/vdso/clocksource.h | 10 +
arch/sparc/include/asm/vdso/gettimeofday.h | 184 ++++++++++
arch/sparc/include/asm/vdso/processor.h | 41 +++
arch/sparc/include/asm/vdso/vsyscall.h | 10 +
arch/sparc/include/asm/vvar.h | 75 ----
arch/sparc/kernel/Makefile | 1 -
arch/sparc/kernel/time_64.c | 6 +-
arch/sparc/kernel/vdso.c | 69 ----
arch/sparc/vdso/Makefile | 8 +-
arch/sparc/vdso/vclock_gettime.c | 380 ++-------------------
arch/sparc/vdso/vdso-layout.lds.S | 26 +-
arch/sparc/vdso/vdso.lds.S | 2 -
arch/sparc/vdso/vdso2c.c | 24 --
arch/sparc/vdso/vdso2c.h | 45 +--
arch/sparc/vdso/vdso32/vdso32.lds.S | 4 +-
arch/sparc/vdso/vma.c | 274 +--------------
drivers/char/random.c | 71 ++--
include/linux/clocksource.h | 6 +-
include/linux/vdso_datastore.h | 6 +
include/vdso/datapage.h | 23 +-
include/vdso/helpers.h | 1 +
init/main.c | 2 +
kernel/time/Kconfig | 4 -
lib/vdso/datastore.c | 74 ++--
lib/vdso/getrandom.c | 3 +
lib/vdso/gettimeofday.c | 17 +
.../testing/selftests/vDSO/vdso_test_correctness.c | 8 +-
44 files changed, 449 insertions(+), 994 deletions(-)
---
base-commit: 28b1ac5ccd8d4900a8f53f0e6e84d517a7ccc71f
change-id: 20250722-vdso-sparc64-generic-2-25f2e058e92c
Best regards,
--
Thomas Weißschuh <thomas.weissschuh@linutronix.de>
^ permalink raw reply [flat|nested] 53+ messages in thread
* [PATCH v5 01/34] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 02/34] arm64: vDSO: getrandom: Explicitly include asm/alternative.h Thomas Weißschuh
` (36 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
On SPARC the field tv_usec of 'struct timespec' is not a 'long int', but
only a regular int. In this case the format string is incorrect and will
trigger compiler warnings.
Avoid the warnings by casting to 'long long', similar to how it is done for
the tv_sec and what the other similar selftests are doing.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
tools/testing/selftests/vDSO/vdso_test_correctness.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/vDSO/vdso_test_correctness.c b/tools/testing/selftests/vDSO/vdso_test_correctness.c
index da651cf53c6ca4242085de109c7fc57bd807297c..5229fcaae8194d51b2cdffdbae59f00cfaeb96dc 100644
--- a/tools/testing/selftests/vDSO/vdso_test_correctness.c
+++ b/tools/testing/selftests/vDSO/vdso_test_correctness.c
@@ -412,10 +412,10 @@ static void test_gettimeofday(void)
return;
}
- printf("\t%llu.%06ld %llu.%06ld %llu.%06ld\n",
- (unsigned long long)start.tv_sec, start.tv_usec,
- (unsigned long long)vdso.tv_sec, vdso.tv_usec,
- (unsigned long long)end.tv_sec, end.tv_usec);
+ printf("\t%llu.%06lld %llu.%06lld %llu.%06lld\n",
+ (unsigned long long)start.tv_sec, (long long)start.tv_usec,
+ (unsigned long long)vdso.tv_sec, (long long)vdso.tv_usec,
+ (unsigned long long)end.tv_sec, (long long)end.tv_usec);
if (!tv_leq(&start, &vdso) || !tv_leq(&vdso, &end)) {
printf("[FAIL]\tTimes are out of sequence\n");
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 02/34] arm64: vDSO: getrandom: Explicitly include asm/alternative.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 01/34] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 03/34] arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h Thomas Weißschuh
` (35 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The call to alternative_has_cap_likely(ARM64_HAS_FPSIMD) requires symbols
from asm/alternative.h. Currently this header is included transitively, but
that transitive inclusion is about to go away.
Explicitly include the header.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/arm64/kernel/vdso/vgetrandom.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/kernel/vdso/vgetrandom.c b/arch/arm64/kernel/vdso/vgetrandom.c
index 832fe195292b34e2029f593ea170347c98e06dac..0aef124c90899dc0c8956b0f32f54992aa3acf0b 100644
--- a/arch/arm64/kernel/vdso/vgetrandom.c
+++ b/arch/arm64/kernel/vdso/vgetrandom.c
@@ -2,6 +2,8 @@
#include <uapi/asm-generic/errno.h>
+#include <asm/alternative.h>
+
typeof(__cvdso_getrandom) __kernel_getrandom;
ssize_t __kernel_getrandom(void *buffer, size_t len, unsigned int flags, void *opaque_state, size_t opaque_len)
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 03/34] arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 01/34] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 02/34] arm64: vDSO: getrandom: Explicitly include asm/alternative.h Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 04/34] arm64: vDSO: compat_gettimeofday: Add explicit includes Thomas Weißschuh
` (34 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The reference to VDSO_CLOCKMODE_NONE requires vdso/clocksource.h. Currently
this header is included transitively, but that transitive inclusion is
about to go away.
Explicitly include the header.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/arm64/include/asm/vdso/gettimeofday.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/include/asm/vdso/gettimeofday.h b/arch/arm64/include/asm/vdso/gettimeofday.h
index c59e84105b43cdb0c823da3dd793a83781f84302..909780bcadae92109b175e23cb05e966683731d4 100644
--- a/arch/arm64/include/asm/vdso/gettimeofday.h
+++ b/arch/arm64/include/asm/vdso/gettimeofday.h
@@ -9,6 +9,8 @@
#ifndef __ASSEMBLY__
+#include <vdso/clocksource.h>
+
#include <asm/alternative.h>
#include <asm/arch_timer.h>
#include <asm/barrier.h>
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 04/34] arm64: vDSO: compat_gettimeofday: Add explicit includes
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (2 preceding siblings ...)
2025-11-06 10:01 ` [PATCH v5 03/34] arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 05/34] ARM: vdso: gettimeofday: " Thomas Weißschuh
` (33 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The reference to VDSO_CLOCKMODE_ARCHTIMER requires vdso/clocksource.h and
'struct old_timespec32' requires vdso/time32.h. Currently these headers
are included transitively, but those transitive inclusions are about to go
away.
Explicitly include the headers.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/arm64/include/asm/vdso/compat_gettimeofday.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/include/asm/vdso/compat_gettimeofday.h b/arch/arm64/include/asm/vdso/compat_gettimeofday.h
index 7d1a116549b1b98d6eb7a78d053958c6a71799ec..2eb116d91235fea8362a11f3644619dbeb8201de 100644
--- a/arch/arm64/include/asm/vdso/compat_gettimeofday.h
+++ b/arch/arm64/include/asm/vdso/compat_gettimeofday.h
@@ -7,6 +7,9 @@
#ifndef __ASSEMBLY__
+#include <vdso/clocksource.h>
+#include <vdso/time32.h>
+
#include <asm/barrier.h>
#include <asm/unistd_compat_32.h>
#include <asm/errno.h>
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 05/34] ARM: vdso: gettimeofday: Add explicit includes
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (3 preceding siblings ...)
2025-11-06 10:01 ` [PATCH v5 04/34] arm64: vDSO: compat_gettimeofday: Add explicit includes Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 06/34] powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h Thomas Weißschuh
` (32 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The reference to VDSO_CLOCKMODE_NONE requires vdso/clocksource.h and
'struct old_timespec32' requires vdso/time32.h. Currently these headers
are included transitively, but those transitive inclusions are about to go
away.
Explicitly include the headers.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/arm/include/asm/vdso/gettimeofday.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/include/asm/vdso/gettimeofday.h b/arch/arm/include/asm/vdso/gettimeofday.h
index 1e9f81639c88cc23cae7cf267bf4674c6d6acec0..26da5d8621cc938f9fdb57fc4b8d240c71e950be 100644
--- a/arch/arm/include/asm/vdso/gettimeofday.h
+++ b/arch/arm/include/asm/vdso/gettimeofday.h
@@ -11,6 +11,8 @@
#include <asm/errno.h>
#include <asm/unistd.h>
#include <asm/vdso/cp15.h>
+#include <vdso/clocksource.h>
+#include <vdso/time32.h>
#include <uapi/linux/time.h>
#define VDSO_HAS_CLOCK_GETRES 1
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 06/34] powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (4 preceding siblings ...)
2025-11-06 10:01 ` [PATCH v5 05/34] ARM: vdso: gettimeofday: " Thomas Weißschuh
@ 2025-11-06 10:01 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 07/34] powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h Thomas Weißschuh
` (31 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:01 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The usage of 'struct old_timespec32' requires vdso/time32.h. Currently
this header is included transitively, but that transitive inclusion is
about to go away.
Explicitly include the header.
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
arch/powerpc/include/asm/vdso/gettimeofday.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/include/asm/vdso/gettimeofday.h b/arch/powerpc/include/asm/vdso/gettimeofday.h
index ab3df12c8d947ed3a5b0b173567ca8469afbf2d6..b2f0e971076acaea8bc70107fc0f5b2d23e0b312 100644
--- a/arch/powerpc/include/asm/vdso/gettimeofday.h
+++ b/arch/powerpc/include/asm/vdso/gettimeofday.h
@@ -8,6 +8,7 @@
#include <asm/barrier.h>
#include <asm/unistd.h>
#include <uapi/linux/time.h>
+#include <vdso/time32.h>
#define VDSO_HAS_CLOCK_GETRES 1
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 07/34] powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (5 preceding siblings ...)
2025-11-06 10:01 ` [PATCH v5 06/34] powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h Thomas Weißschuh
@ 2025-11-06 10:02 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 08/34] LoongArch: vDSO: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
` (30 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:02 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The usage of ASM_FTR_IFCLR(CPU_TR_ARCH_31) requires asm/cputable.h and
asm/feature-fixups.h. Currently these headers are included transitively,
but that transitive inclusion is about to go away.
Explicitly include the headers.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/powerpc/include/asm/vdso/processor.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/powerpc/include/asm/vdso/processor.h b/arch/powerpc/include/asm/vdso/processor.h
index c1f3d7aaf3ee970699fa73731412137631da347b..4c6802c3a58083efc01b4759dbdaa3612903df6a 100644
--- a/arch/powerpc/include/asm/vdso/processor.h
+++ b/arch/powerpc/include/asm/vdso/processor.h
@@ -4,6 +4,9 @@
#ifndef __ASSEMBLER__
+#include <asm/cputable.h>
+#include <asm/feature-fixups.h>
+
/* Macros for adjusting thread priority (hardware multi-threading) */
#ifdef CONFIG_PPC64
#define HMT_very_low() asm volatile("or 31, 31, 31 # very low priority")
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 08/34] LoongArch: vDSO: Explicitly include asm/vdso/vdso.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (6 preceding siblings ...)
2025-11-06 10:02 ` [PATCH v5 07/34] powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h Thomas Weißschuh
@ 2025-11-06 10:02 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 09/34] MIPS: vdso: Add include guard to asm/vdso/vdso.h Thomas Weißschuh
` (29 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:02 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch, linux-mips, linux-s390,
Thomas Weißschuh
The usage of 'struct old_timespec32' requires asm/vdso/vdso.h. Currently
this header is included transitively, but that transitive inclusion is
about to go away.
Explicitly include the header.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
---
arch/loongarch/kernel/process.c | 1 +
arch/loongarch/kernel/vdso.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/loongarch/kernel/process.c b/arch/loongarch/kernel/process.c
index efd9edf65603ccd16408dbe5d2b71a47d08561ff..84a1d3cd5ccb7418907f0a27910742784233a525 100644
--- a/arch/loongarch/kernel/process.c
+++ b/arch/loongarch/kernel/process.c
@@ -52,6 +52,7 @@
#include <asm/switch_to.h>
#include <asm/unwind.h>
#include <asm/vdso.h>
+#include <asm/vdso/vdso.h>
#ifdef CONFIG_STACKPROTECTOR
#include <linux/stackprotector.h>
diff --git a/arch/loongarch/kernel/vdso.c b/arch/loongarch/kernel/vdso.c
index dee1a15d7f4c7770d6c31249c8a3f88295d9482e..663660f08a1f64f44649a8f0034ed7d1239b857d 100644
--- a/arch/loongarch/kernel/vdso.c
+++ b/arch/loongarch/kernel/vdso.c
@@ -18,6 +18,7 @@
#include <asm/page.h>
#include <asm/vdso.h>
+#include <asm/vdso/vdso.h>
#include <vdso/helpers.h>
#include <vdso/vsyscall.h>
#include <vdso/datapage.h>
--
2.51.0
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [PATCH v5 09/34] MIPS: vdso: Add include guard to asm/vdso/vdso.h
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
` (7 preceding siblings ...)
2025-11-06 10:02 ` [PATCH v5 08/34] LoongArch: vDSO: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
@ 2025-11-06 10:02 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 10/34] MIPS: vdso: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
` (28 subsequent siblings)
37 siblings, 0 replies; 53+ messages in thread
From: Thomas Weißschuh @ 2025-11-06 10:02 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino,
Arnd Bergmann, David S. Miller, Andreas Larsson, Nick Alcock,
John Stultz, Stephen Boyd, John Paul Adrian Glaubitz, Shuah Khan,
Catalin Marinas, Will Deacon, Theodore Ts'o,
Jason A. Donenfeld, Russell King, Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Huacai Chen,
WANG Xuerui, Thomas Bogendoerfer, Heiko Carstens, Vasily Gorbik,
Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
Shannon Nelson
Cc: linux-kernel, sparclinux, linux-kselftest, linux-arm-kernel,
linuxppc-dev, loongarch,