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" );
smime.p7s
Description: S/MIME cryptographic signature

