Re: [PATCH 5/7] x86: Insert endbr32/endbr64 to vDSO

From: Andy Lutomirski
Date: Thu Jun 07 2018 - 20:47:38 EST


On Thu, Jun 7, 2018 at 5:31 PM H.J. Lu <hjl.tools@xxxxxxxxx> wrote:
>
> On Thu, Jun 7, 2018 at 4:00 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> > On Thu, Jun 7, 2018 at 3:03 PM H.J. Lu <hjl.tools@xxxxxxxxx> wrote:
> >>
> >> On Thu, Jun 7, 2018 at 1:50 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> >> > On Thu, Jun 7, 2018 at 7:42 AM Yu-cheng Yu <yu-cheng.yu@xxxxxxxxx> wrote:
> >> >>
> >> >> From: "H.J. Lu" <hjl.tools@xxxxxxxxx>
> >> >>
> >> >> When Intel indirect branch tracking is enabled, functions in vDSO which
> >> >> may be called indirectly should have endbr32 or endbr64 as the first
> >> >> instruction. We try to compile vDSO with -fcf-protection=branch -mibt
> >> >> if possible. Otherwise, we insert endbr32 or endbr64 by hand to assembly
> >> >> codes generated by the compiler.
> >> >
> >> > Wow, that's... a genuine abomination. Do we really need to support
> >> > CET on kernels built with old toolchains?
> >> >
> >>
> >> Yes. GCC 7 should be able to build CET kernel.
> >>
> >
> > Why? Presumably people running distros that use CET are going to have
> > kernels build with a CET-supporting compiler.
> >
>
> Good point. It was needed before GCC 8 was released. We can drop
> arch/x86/entry/vdso/endbr.sh now.
>

Phew! We'll still need a patch to prevent configuring CET on a
compiler that can't support it.