On Mon, 2018-01-29 at 11:58 -0600, Josh Poimboeuf wrote: > On Tue, Jan 23, 2018 at 04:25:42PM +0100, Peter Zijlstra wrote: > > > > Paravirt emits indirect calls which get flagged by objtool > > retpoline > > checks, annotate it away because all these indirect calls will be > > patched out before we start userspace. > > > > Signed-off-by: Peter Zijlstra (Intel) > > --- > >  arch/x86/include/asm/paravirt.h       |   22 ++++++++++++++++++--- > > - > >  arch/x86/include/asm/paravirt_types.h |    7 ++++++- > >  2 files changed, 24 insertions(+), 5 deletions(-) > > > > --- a/arch/x86/include/asm/paravirt.h > > +++ b/arch/x86/include/asm/paravirt.h > > @@ -828,6 +828,12 @@ extern void default_banner(void); > >    .short clobbers; \ > >   .popsection > >   > > +#define PARA_RETPOLINE_SAFE \ > > + 773:; \ > > + .pushsection .discard.retpoline_safe; \ > > + _ASM_PTR 773b; \ > > + .popsection > > Why does paravirt have its own version of this macro? Because otherwise we'd only have two, and they might get lonely?