On Wed, Aug 05, 2020 at 03:26:29PM +0200, Marco Elver wrote: > Add missing noinstr to arch_local*() helpers, as they may be called from > noinstr code. > > On a KCSAN config with CONFIG_PARAVIRT=y, syzbot stumbled across corrupt Cute, so I've been working on adding objtool support for this a little: https://lkml.kernel.org/r/20200803143231.GE2674@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h > index 3d2afecde50c..a606f2ba2b5e 100644 > --- a/arch/x86/include/asm/paravirt.h > +++ b/arch/x86/include/asm/paravirt.h > @@ -760,27 +760,27 @@ bool __raw_callee_save___native_vcpu_is_preempted(long cpu); > ((struct paravirt_callee_save) { func }) > > #ifdef CONFIG_PARAVIRT_XXL > -static inline notrace unsigned long arch_local_save_flags(void) > +static inline noinstr unsigned long arch_local_save_flags(void) > { > return PVOP_CALLEE0(unsigned long, irq.save_fl); > } > > -static inline notrace void arch_local_irq_restore(unsigned long f) > +static inline noinstr void arch_local_irq_restore(unsigned long f) > { > PVOP_VCALLEE1(irq.restore_fl, f); > } > > -static inline notrace void arch_local_irq_disable(void) > +static inline noinstr void arch_local_irq_disable(void) > { > PVOP_VCALLEE0(irq.irq_disable); > } > > -static inline notrace void arch_local_irq_enable(void) > +static inline noinstr void arch_local_irq_enable(void) > { > PVOP_VCALLEE0(irq.irq_enable); > } > > -static inline notrace unsigned long arch_local_irq_save(void) > +static inline noinstr unsigned long arch_local_irq_save(void) > { > unsigned long f; > Shouldn't we __always_inline those? They're going to be really small. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization