Messages in this thread | | | Subject | Re: [PATCH] x86/retpoline: Fix NOSPEC_JMP for tip | From | Tom Lendacky <> | Date | Tue, 9 Jan 2018 18:45:34 -0600 |
| |
On 1/9/2018 6:40 PM, Thomas Gleixner wrote: > On Tue, 9 Jan 2018, Linus Torvalds wrote: > >> On Tue, Jan 9, 2018 at 4:31 PM, Andi Kleen <andi@firstfloor.org> wrote: >>> >>> The following patch fixes it for me. Something doesn't >>> seem to work with ALTERNATIVE_2. It adds only a few bytes >>> more code, so seems acceptable. >> >> Ugh. It's kind of stupid, though. >> >> Why is the code sequence not simply: >> >> ALTERNATIVE "", "lfence", X86_FEATURE_RETPOLINE_AMD >> ALTERNATIVE __stringify(jmp *\reg), __stringify(RETPOLINE_JMP \reg), >> X86_FEATURE_RETPOLINE >> >> ie make that X86_FEATURE_RETPOLINE_AMD _only_ emit the "lfence", and >> simply fall through to what will be the "jmp *\reg" of the >> non-RETPOLINE version. >> >> Then just make sure X86_FEATURE_RETPOLINE_AMD disables X86_FEATURE_RETPOLINE.
I think there are areas that rely on X86_FEATURE_RETPOLINE being set even if X86_FEATURE_RETPOLINE_AMD is set. For example, line 261 in arch/x86/entry/entry_32.S is only checking for X86_FEATURE_RETPOLINE.
Thanks, Tom
>> >> That is both simpler an dsmaller, no? > > Duh, yes. >
| |