Re: [PATCH v5 02/10] x86: Compile-time asm code validation

Josh Poimboeuf
2015-06-12T16:41:06Z

On Fri, Jun 12, 2015 at 05:00:50PM +0100, Pedro Alves wrote:
> On 06/12/2015 03:10 PM, Josh Poimboeuf wrote:
> > That said, the kernel has much more custom features than other projects.
> > There are some sneaky macros, like _ASM_EXTABLE and ALTERNATIVE, which
> > hide code in various sections. Unless we're able to somehow either stop
> > using these macros or isolate them to a few places, I doubt that such a
> > general purpose assembler option would work.
>
> How does the asmvalidator handle these?

They're not easy to deal with...

The ALTERNATIVE macro creates some instructions which can be patched in
at runtime, to replace some original instructions, if the CPU supports
certain features. So we have to look up those replacement instructions
in another section and consider them to be potentially part of the
original function when doing the analysis and generation.

The _ASM_EXTABLE macro creates code which is executed after an
exception. Similarly to the ALTERNATIVE macro, we have to look up those
instructions and consider them to be part of the original function.

--
Josh