On Fri, Jul 13, 2018 at 3:15 AM David Laight <David.Laight@xxxxxxxxxx> wrote: > > From: Nick Desaulniers > > Sent: 21 June 2018 17:23 > > > > native_save_fl() is marked static inline, but by using it as > > a function pointer in arch/x86/kernel/paravirt.c, it MUST be outlined. > > > > paravirt's use of native_save_fl() also requires that no GPRs other than > > %rax are clobbered. > ... > > diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h > > index 89f08955fff7..c4fc17220df9 100644 > > --- a/arch/x86/include/asm/irqflags.h > > +++ b/arch/x86/include/asm/irqflags.h > > @@ -13,7 +13,7 @@ > > * Interrupt control: > > */ > > > > -static inline unsigned long native_save_fl(void) > > +extern inline unsigned long native_save_fl(void) > > This is generating a the compilation warning (that we treat as an error): > "no previous prototype for 'native_save_fl". > Fixable by replicating the line with an appended ; Thanks for the report and sorry for breaking things for you. Just curious about more information to try to reproduce the issue to make sure I fix the issue correctly: * What compiler and compiler version are you using? * Are you setting any configs or enabling any warning CFLAGS to see this? * Do you see this warning for other `extern inline` functions? (It seems like the few other ones in the kernel are for non-x86 archs) I would have guessed that extern inline functions with gnu_inline semantics (gnu89 behavior) should not have a previous declaration, but it probably doesn't hurt to add it. -- Thanks, ~Nick Desaulniers -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html