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

From: Andy Lutomirski
Date: Thu Jun 07 2018 - 19:00:32 EST


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.

If we really really need this patch, then I want some kind of
assurance that selftests will catch the failure if something breaks it
or a new vDSO entry point is added. But my inclination is to NAK this
patch and let the distros carry it if they really really want it. As
it stands, this sucks for maintainability.