ARM: VDSO: Remove cntvct_ok global variable
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Tue, 26 Aug 2025 06:17:05 +0000 (08:17 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 4 Sep 2025 09:23:49 +0000 (11:23 +0200)
The cntvct_ok variable has not had any external user since commit
c7a18100bdff ("lib/vdso: Avoid highres update if clocksource is not
VDSO capable").

It also only has one user in vdso.c, once during init, so rather than
having the caller of patch_vdso() initialize cntvct_ok, just call
cntvct_functional() directly and avoid the global variable entirely.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Link: https://lore.kernel.org/all/20250826-vdso-cleanups-v1-2-d9b65750e49f@linutronix.de
arch/arm/include/asm/vdso/vsyscall.h
arch/arm/kernel/vdso.c

index 4e7226a..ff1c729 100644 (file)
@@ -7,8 +7,6 @@
 #include <vdso/datapage.h>
 #include <asm/cacheflush.h>
 
-extern bool cntvct_ok;
-
 static __always_inline
 void __arch_sync_vdso_time_data(struct vdso_time_data *vdata)
 {
index 325448f..e38a304 100644 (file)
@@ -54,11 +54,9 @@ struct elfinfo {
        char            *dynstr;        /* ptr to .dynstr section */
 };
 
-/* Cached result of boot-time check for whether the arch timer exists,
- * and if so, whether the virtual counter is useable.
+/* Boot-time check for whether the arch timer exists, and if so,
+ * whether the virtual counter is usable.
  */
-bool cntvct_ok __ro_after_init;
-
 static bool __init cntvct_functional(void)
 {
        struct device_node *np;
@@ -159,7 +157,7 @@ static void __init patch_vdso(void *ehdr)
         * want programs to incur the slight additional overhead of
         * dispatching through the VDSO only to fall back to syscalls.
         */
-       if (!cntvct_ok) {
+       if (!cntvct_functional()) {
                vdso_nullpatch_one(&einfo, "__vdso_gettimeofday");
                vdso_nullpatch_one(&einfo, "__vdso_clock_gettime");
                vdso_nullpatch_one(&einfo, "__vdso_clock_gettime64");
@@ -197,8 +195,6 @@ static int __init vdso_init(void)
        vdso_total_pages = VDSO_NR_PAGES; /* for the data/vvar pages */
        vdso_total_pages += text_pages;
 
-       cntvct_ok = cntvct_functional();
-
        patch_vdso(vdso_start);
 
        return 0;