lkml.org 
[lkml]   [2018]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v6 3/3] x86: paravirt: make native_save_fl extern inline
    On Fri, Jul 13, 2018 at 3:15 AM David Laight <David.Laight@aculab.com> 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

    \
     
     \ /
      Last update: 2018-07-16 19:27    [W:3.991 / U:0.404 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site