Messages in this thread Patch in this message | | | Subject | Re: [PATCH] x86/retpoline: Fill return stack buffer on vmexit | Date | Thu, 11 Jan 2018 00:04:34 +0000 | From | "Woodhouse, David" <> |
| |
On Wed, 2018-01-10 at 15:47 -0800, Tim Chen wrote: > > > + > > + asm volatile (ALTERNATIVE("", > > + __stringify(__FILL_RETURN_BUFFER(%0, %1, _%=)), > > + X86_FEATURE_RETPOLINE) > > We'll be patching in a fairly long set of instructions here. Maybe put > the ALTERNATIVE in the assembly and use a jmp skip_\@ for the ALTERNATIVE.
Perhaps the alternatives.h header could give me a clean way of doing this:
--- a/arch/x86/include/asm/nospec-branch.h +++ b/arch/x86/include/asm/nospec-branch.h @@ -177,7 +178,7 @@ static inline void vmexit_fill_RSB(void) { unsigned long dummy; - asm volatile (ALTERNATIVE("", + asm volatile (ALTERNATIVE("jmp " alt_end_marker "f", __stringify(__FILL_RETURN_BUFFER(%0, %1, _%=)), X86_FEATURE_RETPOLINE) : "=r" (dummy), ASM_CALL_CONSTRAINT : : "memory" );[unhandled content-type:application/x-pkcs7-signature] | |