RE: [PATCH] retpoline/module: Taint kernel for missing retpoline in module

From: David Laight
Date: Mon Jan 15 2018 - 09:08:32 EST


From: David Woodhouse
> Sent: 15 January 2018 13:01
> On Mon, 2018-01-15 at 12:53 +0000, Van De Ven, Arjan wrote:
> >
> > binary what? ;-)
> >
> > retpoline (or lack thereof) is part of the kernel ABI at this point....
>
> Strictly speaking, only lack thereof.
>
> If you build the kernel without CONFIG_RETPOLINE, you can't build
> modules with retpoline and then expect them to load â because the thunk
> symbols aren't exported.
>
> If you build the kernel with the retpoline though, you *can*
> successfully load modules which aren't built with retpoline.
>
> It's not even that unlikely, if the kernel engineers are ensuring they
> have the latest unreleased toolchain for kernel builds, but you're
> using out-of-tree modules built separately or even on the target system
> using DKMS, and you *haven't* got the shiny new compiler.

More likely you have got the 'shiny new compiler', but the kernel the
code is loading on is old and archaic.

We haven't yet managed to persuade all our customers to move from
2.6.18 kernels (think that is a supported RHEL release).

> That's what Andi's attempting to protect against.

Hopefully he'll only mark things 'tainted'.

David