Re: [PATCH 2/7] x86/enter: MACROS to set/clear IBRS

From: Dave Hansen
Date: Fri Jan 05 2018 - 00:06:15 EST


On 01/04/2018 08:54 PM, Andy Lutomirski wrote:
> On Thu, Jan 4, 2018 at 2:23 PM, Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
>> On 01/04/2018 02:21 PM, Tim Chen wrote:
>>>> Does this really have to live outside of arch/x86/entry/ ?
>>>>
>>> There are some inline C routines later in this file
>>> that will be needed by other functions. Want to consolidate
>>> them in the same file.
>>
>> We could put all of the assembly into calling.h along with the PTI
>> assembly. Seems as sane a place as anywhere else to put it.
>
> We should also stop thinking that NMI is at all special. All the
> paranoid entry paths + NMI should just save and restore it, just like
> CR3. Otherwise we get nasty corner cases with MCE, kprobes, etc.

I've probably been too imprecise in my language here. The goal is
absolutely to deal with all the paranoid paths. It's just that the NMI
one is the easiest to understand and easiest to exercise.

It also *is* special because it's the only one needing paranoid handling
that does not use paranoid_exit itself.