]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
powerpc/vdso: Remove runtime generated sigtramp offsets
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Sun, 27 Sep 2020 09:16:38 +0000 (09:16 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 3 Dec 2020 14:01:18 +0000 (01:01 +1100)
Signal trampoline offsets are now generated at buildtime.

Runtime generated offsets are not used anymore, remove them.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/7c192d35a437151837cf4c48aeccb42380d6daac.1601197618.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/vdso.h
arch/powerpc/kernel/vdso.c

index f5257b7f17d0097a63ec6f1145b224dbef6cc759..a97384909fe5d6e188c51ed8d84d4769746bd59e 100644 (file)
 
 #define VDSO32_SYMBOL(base, name) ((unsigned long)(base) + (vdso32_offset_##name))
 
-/* Offsets relative to thread->vdso_base */
-extern unsigned long vdso64_rt_sigtramp;
-extern unsigned long vdso32_sigtramp;
-extern unsigned long vdso32_rt_sigtramp;
-
 int vdso_getcpu_init(void);
 
 #else /* __ASSEMBLY__ */
index 4c9770577e30eb47a19c5287321c335ec446c9a6..9993dc8d68e65facb647793a6ae0e83a37059695 100644 (file)
 #define VDSO_ALIGNMENT (1 << 16)
 
 static void *vdso32_kbase;
-unsigned long vdso32_sigtramp;
-unsigned long vdso32_rt_sigtramp;
 
 extern char vdso32_start, vdso32_end;
 extern char vdso64_start, vdso64_end;
 static void *vdso64_kbase = &vdso64_start;
-#ifdef CONFIG_PPC64
-unsigned long vdso64_rt_sigtramp;
-#endif /* CONFIG_PPC64 */
 
 static int vdso_ready;
 
@@ -275,22 +270,6 @@ static Elf32_Sym * __init find_symbol32(struct lib32_elfinfo *lib,
        return NULL;
 }
 
-/* Note that we assume the section is .text and the symbol is relative to
- * the library base
- */
-static unsigned long __init find_function32(struct lib32_elfinfo *lib,
-                                           const char *symname)
-{
-       Elf32_Sym *sym = find_symbol32(lib, symname);
-
-       if (sym == NULL) {
-               printk(KERN_WARNING "vDSO32: function %s not found !\n",
-                      symname);
-               return 0;
-       }
-       return sym->st_value - VDSO32_LBASE;
-}
-
 static int __init vdso_do_func_patch32(struct lib32_elfinfo *v32,
                                       struct lib64_elfinfo *v64,
                                       const char *orig, const char *fix)
@@ -320,12 +299,6 @@ static int __init vdso_do_func_patch32(struct lib32_elfinfo *v32,
        return 0;
 }
 #else /* !CONFIG_VDSO32 */
-static unsigned long __init find_function32(struct lib32_elfinfo *lib,
-                                           const char *symname)
-{
-       return 0;
-}
-
 static int __init vdso_do_func_patch32(struct lib32_elfinfo *v32,
                                       struct lib64_elfinfo *v64,
                                       const char *orig, const char *fix)
@@ -381,22 +354,6 @@ static Elf64_Sym * __init find_symbol64(struct lib64_elfinfo *lib,
        return NULL;
 }
 
-/* Note that we assume the section is .text and the symbol is relative to
- * the library base
- */
-static unsigned long __init find_function64(struct lib64_elfinfo *lib,
-                                           const char *symname)
-{
-       Elf64_Sym *sym = find_symbol64(lib, symname);
-
-       if (sym == NULL) {
-               printk(KERN_WARNING "vDSO64: function %s not found !\n",
-                      symname);
-               return 0;
-       }
-       return sym->st_value - VDSO64_LBASE;
-}
-
 static int __init vdso_do_func_patch64(struct lib32_elfinfo *v32,
                                       struct lib64_elfinfo *v64,
                                       const char *orig, const char *fix)
@@ -477,20 +434,6 @@ static __init int vdso_do_find_sections(struct lib32_elfinfo *v32,
        return 0;
 }
 
-static __init void vdso_setup_trampolines(struct lib32_elfinfo *v32,
-                                         struct lib64_elfinfo *v64)
-{
-       /*
-        * Find signal trampolines
-        */
-
-#ifdef CONFIG_PPC64
-       vdso64_rt_sigtramp = find_function64(v64, "__kernel_sigtramp_rt64");
-#endif
-       vdso32_sigtramp    = find_function32(v32, "__kernel_sigtramp32");
-       vdso32_rt_sigtramp = find_function32(v32, "__kernel_sigtramp_rt32");
-}
-
 static __init int vdso_fixup_features(struct lib32_elfinfo *v32,
                                      struct lib64_elfinfo *v64)
 {
@@ -562,8 +505,6 @@ static __init int vdso_setup(void)
        if (vdso_fixup_alt_funcs(&v32, &v64))
                return -1;
 
-       vdso_setup_trampolines(&v32, &v64);
-
        return 0;
 }