From: vincenzo.frascino at arm.com (Vincenzo Frascino) Subject: [PATCH v6 13/19] arm64: elf: vDSO code page discovery Date: Thu, 30 May 2019 15:15:25 +0100 [thread overview] Message-ID: <20190530141531.43462-14-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20190530141531.43462-1-vincenzo.frascino@arm.com> Like in normal vDSOs, when compat vDSOs are enabled the auxiliary vector symbol AT_SYSINFO_EHDR needs to point at the address of the vDSO code, to allow the dynamic linker to find it. Add the necessary code to the elf arm64 module to make this possible. Cc: Catalin Marinas <catalin.marinas at arm.com> Cc: Will Deacon <will.deacon at arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino at arm.com> --- arch/arm64/include/asm/elf.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 355d120b78cb..34cabaf78011 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -213,7 +213,21 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; ({ \ set_thread_flag(TIF_32BIT); \ }) +#ifdef CONFIG_GENERIC_COMPAT_VDSO +#define COMPAT_ARCH_DLINFO \ +do { \ + /* \ + * Note that we use Elf64_Off instead of elf_addr_t because \ + * elf_addr_t in compat is defined as Elf32_Addr and casting \ + * current->mm->context.vdso to it triggers a cast warning of \ + * cast from pointer to integer of different size. \ + */ \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, \ + (Elf64_Off)current->mm->context.vdso); \ +} while (0) +#else #define COMPAT_ARCH_DLINFO +#endif extern int aarch32_setup_additional_pages(struct linux_binprm *bprm, int uses_interp); #define compat_arch_setup_additional_pages \ -- 2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: vincenzo.frascino@arm.com (Vincenzo Frascino) Subject: [PATCH v6 13/19] arm64: elf: vDSO code page discovery Date: Thu, 30 May 2019 15:15:25 +0100 [thread overview] Message-ID: <20190530141531.43462-14-vincenzo.frascino@arm.com> (raw) Message-ID: <20190530141525.EBg-Td7HxropMS9FCu-nAeKUYOtpy9Hd_WKShUaVEe0@z> (raw) In-Reply-To: <20190530141531.43462-1-vincenzo.frascino@arm.com> Like in normal vDSOs, when compat vDSOs are enabled the auxiliary vector symbol AT_SYSINFO_EHDR needs to point at the address of the vDSO code, to allow the dynamic linker to find it. Add the necessary code to the elf arm64 module to make this possible. Cc: Catalin Marinas <catalin.marinas at arm.com> Cc: Will Deacon <will.deacon at arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino at arm.com> --- arch/arm64/include/asm/elf.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 355d120b78cb..34cabaf78011 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -213,7 +213,21 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; ({ \ set_thread_flag(TIF_32BIT); \ }) +#ifdef CONFIG_GENERIC_COMPAT_VDSO +#define COMPAT_ARCH_DLINFO \ +do { \ + /* \ + * Note that we use Elf64_Off instead of elf_addr_t because \ + * elf_addr_t in compat is defined as Elf32_Addr and casting \ + * current->mm->context.vdso to it triggers a cast warning of \ + * cast from pointer to integer of different size. \ + */ \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, \ + (Elf64_Off)current->mm->context.vdso); \ +} while (0) +#else #define COMPAT_ARCH_DLINFO +#endif extern int aarch32_setup_additional_pages(struct linux_binprm *bprm, int uses_interp); #define compat_arch_setup_additional_pages \ -- 2.21.0
next prev parent reply other threads:[~2019-05-30 14:15 UTC|newest] Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-30 14:15 [PATCH v6 00/19] Unify vDSOs across more architectures vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 01/19] kernel: Standardize vdso_datapage vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:16 ` arnd 2019-05-31 8:16 ` Arnd Bergmann 2019-06-04 12:05 ` vincenzo.frascino 2019-06-04 12:05 ` Vincenzo Frascino 2019-06-10 17:47 ` huw 2019-06-10 17:47 ` Huw Davies 2019-06-10 17:47 ` Huw Davies 2019-06-10 9:27 ` huw 2019-06-10 9:27 ` Huw Davies 2019-06-10 9:27 ` Huw Davies 2019-06-10 10:17 ` vincenzo.frascino 2019-06-10 10:17 ` Vincenzo Frascino 2019-06-10 10:17 ` Vincenzo Frascino 2019-06-10 10:31 ` huw 2019-06-10 10:31 ` Huw Davies 2019-06-10 10:31 ` Huw Davies 2019-06-10 11:07 ` vincenzo.frascino 2019-06-10 11:07 ` Vincenzo Frascino 2019-06-10 11:07 ` Vincenzo Frascino 2019-06-10 11:37 ` huw 2019-06-10 11:37 ` Huw Davies 2019-06-10 11:37 ` Huw Davies 2019-05-30 14:15 ` [PATCH v6 02/19] kernel: Define gettimeofday vdso common code vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:19 ` arnd 2019-05-31 8:19 ` Arnd Bergmann 2019-06-04 12:08 ` vincenzo.frascino 2019-06-04 12:08 ` Vincenzo Frascino 2019-06-10 9:31 ` huw 2019-06-10 9:31 ` Huw Davies 2019-06-10 9:31 ` Huw Davies 2019-06-10 10:18 ` vincenzo.frascino 2019-06-10 10:18 ` Vincenzo Frascino 2019-06-10 10:18 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 03/19] kernel: Unify update_vsyscall implementation vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-06-10 9:34 ` huw 2019-06-10 9:34 ` Huw Davies 2019-06-10 9:34 ` Huw Davies 2019-06-10 10:19 ` vincenzo.frascino 2019-06-10 10:19 ` Vincenzo Frascino 2019-06-10 10:19 ` Vincenzo Frascino 2019-06-14 11:10 ` Thomas Gleixner 2019-06-14 12:15 ` Vincenzo Frascino 2019-06-14 12:19 ` Thomas Gleixner 2019-06-14 12:25 ` Vincenzo Frascino 2019-06-14 13:07 ` Thomas Gleixner 2019-05-30 14:15 ` [PATCH v6 04/19] arm64: Substitute gettimeofday with C implementation vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 05/19] arm64: Build vDSO with -ffixed-x18 vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 06/19] arm64: compat: Add missing syscall numbers vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 07/19] arm64: compat: Expose signal related structures vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 08/19] arm64: compat: Generate asm offsets for signals vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 09/19] lib: vdso: Add compat support vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 10/19] arm64: compat: Add vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 11/19] arm64: Refactor vDSO code vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 12/19] arm64: compat: vDSO setup for compat layer vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` vincenzo.frascino [this message] 2019-05-30 14:15 ` [PATCH v6 13/19] arm64: elf: vDSO code page discovery Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 14/19] arm64: compat: Get sigreturn trampolines from vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 15/19] arm64: Add vDSO compat support vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-06-01 9:38 ` catalin.marinas 2019-06-01 9:38 ` Catalin Marinas 2019-06-04 12:10 ` vincenzo.frascino 2019-06-04 12:10 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 16/19] arm: Add support for generic vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:32 ` arnd 2019-05-31 8:32 ` Arnd Bergmann 2019-05-30 14:15 ` [PATCH v6 17/19] mips: " vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:34 ` arnd 2019-05-31 8:34 ` Arnd Bergmann 2019-06-03 14:54 ` salyzyn 2019-06-03 14:54 ` Mark Salyzyn 2019-06-03 17:07 ` arnd 2019-06-03 17:07 ` Arnd Bergmann 2019-05-30 14:15 ` [PATCH v6 18/19] x86: " vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 15:41 ` mikelley 2019-05-30 15:41 ` Michael Kelley 2019-06-04 12:13 ` vincenzo.frascino 2019-06-04 12:13 ` Vincenzo Frascino 2019-06-14 11:15 ` Thomas Gleixner 2019-06-14 21:17 ` Sasha Levin 2019-06-22 14:46 ` Thomas Gleixner 2019-06-23 19:09 ` Sasha Levin 2019-06-23 21:58 ` Stephen Rothwell 2019-06-24 0:24 ` Sasha Levin 2019-06-24 1:20 ` Stephen Rothwell 2019-06-23 22:12 ` Thomas Gleixner 2019-06-24 0:04 ` Michael Kelley 2019-06-24 0:25 ` Thomas Gleixner 2019-06-28 18:40 ` Michael Kelley 2019-05-30 14:15 ` [PATCH v6 19/19] kselftest: Extend vDSO selftest vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:53 ` arnd 2019-05-31 8:53 ` Arnd Bergmann 2019-05-31 8:46 ` [PATCH v6 00/19] Unify vDSOs across more architectures arnd 2019-05-31 8:46 ` Arnd Bergmann 2019-06-04 12:04 ` vincenzo.frascino 2019-06-04 12:04 ` Vincenzo Frascino 2019-06-04 12:12 ` arnd 2019-06-04 12:12 ` Arnd Bergmann 2019-06-05 14:32 ` vincenzo.frascino 2019-06-05 14:32 ` Vincenzo Frascino 2019-06-14 12:16 ` Thomas Gleixner 2019-06-14 12:19 ` Vincenzo Frascino 2019-06-20 6:17 ` Shijith Thotton 2019-06-20 8:55 ` Vincenzo Frascino 2019-06-20 16:27 ` Andre Przywara 2019-06-21 9:11 ` Vincenzo Frascino
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190530141531.43462-14-vincenzo.frascino@arm.com \ --to=linux-kselftest@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).