Message ID | 20190710140119.23417-1-vincenzo.frascino@arm.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v2] arm64: vdso: Fix ABI regression in compat vdso | expand |
On Wed, Jul 10, 2019 at 7:01 AM Vincenzo Frascino <vincenzo.frascino@arm.com> wrote: > > Prior to the introduction of Unified vDSO support and compat layer for > vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. > In the current implementation, AT_SYSINFO_EHDR is defined even if the > compat vdso layer is not built and this causes a regression in the > expected behavior of the ABI. > > Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat > tasks is defined only when CONFIG_COMPAT_VDSO is enabled. > > Reported-by: John Stultz <john.stultz@linaro.org> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> This seems to solve it for me! Thanks so much for the quick turnaround on a fix. I really appreciate it! Tested-by: John Stultz <john.stultz@linaro.org> thanks -john
Hi John, On 10/07/2019 16:44, John Stultz wrote: > On Wed, Jul 10, 2019 at 7:01 AM Vincenzo Frascino > <vincenzo.frascino@arm.com> wrote: >> >> Prior to the introduction of Unified vDSO support and compat layer for >> vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. >> In the current implementation, AT_SYSINFO_EHDR is defined even if the >> compat vdso layer is not built and this causes a regression in the >> expected behavior of the ABI. >> >> Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat >> tasks is defined only when CONFIG_COMPAT_VDSO is enabled. >> >> Reported-by: John Stultz <john.stultz@linaro.org> >> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > This seems to solve it for me! > Thanks so much for the quick turnaround on a fix. I really appreciate it! > > Tested-by: John Stultz <john.stultz@linaro.org> > Thank you for the quick reply, it means I can go home early today ;-) > thanks > -john >
On Wed, Jul 10, 2019 at 03:01:19PM +0100, Vincenzo Frascino wrote: > Prior to the introduction of Unified vDSO support and compat layer for > vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. > In the current implementation, AT_SYSINFO_EHDR is defined even if the > compat vdso layer is not built and this causes a regression in the > expected behavior of the ABI. > > Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat > tasks is defined only when CONFIG_COMPAT_VDSO is enabled. > > Reported-by: John Stultz <john.stultz@linaro.org> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > --- > arch/arm64/include/asm/elf.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h > index 3c7037c6ba9b..b618017205a3 100644 > --- a/arch/arm64/include/asm/elf.h > +++ b/arch/arm64/include/asm/elf.h > @@ -202,7 +202,7 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; > ({ \ > set_thread_flag(TIF_32BIT); \ > }) > -#ifdef CONFIG_GENERIC_COMPAT_VDSO > +#ifdef CONFIG_COMPAT_VDSO > #define COMPAT_ARCH_DLINFO \ > do { \ > /* \ Acked-by: Will Deacon <will@kernel.org> I can take this at -rc1 via arm64 unless tglx plans to send it during the rest of the merge window. Please let me know. Will
On Thu, 11 Jul 2019, Will Deacon wrote: > On Wed, Jul 10, 2019 at 03:01:19PM +0100, Vincenzo Frascino wrote: > > Prior to the introduction of Unified vDSO support and compat layer for > > vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. > > In the current implementation, AT_SYSINFO_EHDR is defined even if the > > compat vdso layer is not built and this causes a regression in the > > expected behavior of the ABI. > > > > Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat > > tasks is defined only when CONFIG_COMPAT_VDSO is enabled. > > > > Reported-by: John Stultz <john.stultz@linaro.org> > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > --- > > arch/arm64/include/asm/elf.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h > > index 3c7037c6ba9b..b618017205a3 100644 > > --- a/arch/arm64/include/asm/elf.h > > +++ b/arch/arm64/include/asm/elf.h > > @@ -202,7 +202,7 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; > > ({ \ > > set_thread_flag(TIF_32BIT); \ > > }) > > -#ifdef CONFIG_GENERIC_COMPAT_VDSO > > +#ifdef CONFIG_COMPAT_VDSO > > #define COMPAT_ARCH_DLINFO \ > > do { \ > > /* \ > > Acked-by: Will Deacon <will@kernel.org> > > I can take this at -rc1 via arm64 unless tglx plans to send it during the > rest of the merge window. Please let me know. I had no plan to pick it up, but if you want I can route it through timer urgents so it hits Linus tree before rc1. Thanks, tglx
On Thu, Jul 11, 2019 at 12:34:27PM +0200, Thomas Gleixner wrote: > On Thu, 11 Jul 2019, Will Deacon wrote: > > On Wed, Jul 10, 2019 at 03:01:19PM +0100, Vincenzo Frascino wrote: > > > Prior to the introduction of Unified vDSO support and compat layer for > > > vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. > > > In the current implementation, AT_SYSINFO_EHDR is defined even if the > > > compat vdso layer is not built and this causes a regression in the > > > expected behavior of the ABI. > > > > > > Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat > > > tasks is defined only when CONFIG_COMPAT_VDSO is enabled. > > > > > > Reported-by: John Stultz <john.stultz@linaro.org> > > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > > --- > > > arch/arm64/include/asm/elf.h | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h > > > index 3c7037c6ba9b..b618017205a3 100644 > > > --- a/arch/arm64/include/asm/elf.h > > > +++ b/arch/arm64/include/asm/elf.h > > > @@ -202,7 +202,7 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; > > > ({ \ > > > set_thread_flag(TIF_32BIT); \ > > > }) > > > -#ifdef CONFIG_GENERIC_COMPAT_VDSO > > > +#ifdef CONFIG_COMPAT_VDSO > > > #define COMPAT_ARCH_DLINFO \ > > > do { \ > > > /* \ > > > > Acked-by: Will Deacon <will@kernel.org> > > > > I can take this at -rc1 via arm64 unless tglx plans to send it during the > > rest of the merge window. Please let me know. > > I had no plan to pick it up, but if you want I can route it through timer > urgents so it hits Linus tree before rc1. I don't think it's urgent, so I'll just queue it along with any other fixes that show up at -rc1. Cheers, Will
diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 3c7037c6ba9b..b618017205a3 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -202,7 +202,7 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; ({ \ set_thread_flag(TIF_32BIT); \ }) -#ifdef CONFIG_GENERIC_COMPAT_VDSO +#ifdef CONFIG_COMPAT_VDSO #define COMPAT_ARCH_DLINFO \ do { \ /* \
Prior to the introduction of Unified vDSO support and compat layer for vDSO on arm64, AT_SYSINFO_EHDR was not defined for compat tasks. In the current implementation, AT_SYSINFO_EHDR is defined even if the compat vdso layer is not built and this causes a regression in the expected behavior of the ABI. Restore the ABI behavior making sure that AT_SYSINFO_EHDR for compat tasks is defined only when CONFIG_COMPAT_VDSO is enabled. Reported-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/include/asm/elf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)