On Tue, May 14, 2019 at 05:25:31PM -0700, Nathan Chancellor wrote:
On Tue, May 14, 2019 at 09:50:04AM +0200, Greg Kroah-Hartman wrote:
On Tue, May 14, 2019 at 04:34:29PM +0900, Nobuhiro Iwamatsu wrote:
> From: Alistair Strachan <astrachan@xxxxxxxxxx>
>
> commit cd01544a268ad8ee5b1dfe42c4393f1095f86879 upstream.
>
> Commit
>
> 379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link")
>
> accidentally broke unwinding from userspace, because ld would strip the
> .eh_frame sections when linking.
>
> Originally, the compiler would implicitly add --eh-frame-hdr when
> invoking the linker, but when this Makefile was converted from invoking
> ld via the compiler, to invoking it directly (like vmlinux does),
> the flag was missed. (The EH_FRAME section is important for the VDSO
> shared libraries, but not for vmlinux.)
>
> Fix the problem by explicitly specifying --eh-frame-hdr, which restores
> parity with the old method.
>
> See relevant bug reports for additional info:
>
> https://bugzilla.kernel.org/show_bug.cgi?id=201741
> https://bugzilla.redhat.com/show_bug.cgi?id=1659295
>
> Fixes: 379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link")
> Reported-by: Florian Weimer <fweimer@xxxxxxxxxx>
> Reported-by: Carlos O'Donell <carlos@xxxxxxxxxx>
> Reported-by: "H. J. Lu" <hjl.tools@xxxxxxxxx>
> Signed-off-by: Alistair Strachan <astrachan@xxxxxxxxxx>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> Tested-by: Laura Abbott <labbott@xxxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> Cc: Carlos O'Donell <carlos@xxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
> Cc: kernel-team@xxxxxxxxxxx
> Cc: Laura Abbott <labbott@xxxxxxxxxx>
> Cc: stable <stable@xxxxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: X86 ML <x86@xxxxxxxxxx>
> Link: https://lkml.kernel.org/r/20181214223637.35954-1-astrachan@xxxxxxxxxx
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@xxxxxxxxxxxxx>
> ---
> arch/x86/entry/vdso/Makefile | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
This is already in the 4.14 stable queue.
Sasha, how did you tools miss it for 4.4 and 4.9?
Not Sasha's fault but mine, I forgot to git grep for the short hash like
I usually do to ensure I catch all fixes (or I didn't do it properly, I
forget which) when I added this to all of the trees.
It was also the case the two patches (including the one in question
here) did not have a reference to the upstream commit id, which is how
my tools missed it.
I've reverted both and reapplied them with a reference to the upstream
commit yesterday.
--
Thanks,
Sasha