Hi Christophe,

I love your patch! Perhaps something to improve:

[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.14-rc6 next-20210819]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Christophe-Leroy/powerpc-Remove-MSR_PR-check-in-interrupt_exit_-user-kernel-_prepare/20210819-143251
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/0day-ci/linux/commit/797b527549df3f1f8e4d9f2bafeb5fe5ec810409
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Christophe-Leroy/powerpc-Remove-MSR_PR-check-in-interrupt_exit_-user-kernel-_prepare/20210819-143251
        git checkout 797b527549df3f1f8e4d9f2bafeb5fe5ec810409
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross 
ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from arch/powerpc/mm/book3s64/slb.c:13:
   arch/powerpc/mm/book3s64/slb.c: In function '____do_slb_fault':
   arch/powerpc/include/asm/interrupt.h:398:29: error: invalid storage class 
for function '____do_bad_slb_fault'
     398 | static __always_inline void ____##func(struct pt_regs *regs);        
   \
         |                             ^~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/include/asm/interrupt.h:398:1: warning: ISO C90 forbids mixed 
>> declarations and code [-Wdeclaration-after-statement]
     398 | static __always_inline void ____##func(struct pt_regs *regs);        
   \
         | ^~~~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/include/asm/interrupt.h:400:36: warning: 'externally_visible' 
>> attribute have effect only on public objects [-Wattributes]
     400 | interrupt_handler void func(struct pt_regs *regs)                    
   \
         |                                    ^~~~~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/mm/book3s64/slb.c: In function 'do_bad_slb_fault':
   arch/powerpc/include/asm/interrupt.h:406:9: error: implicit declaration of 
function '____do_bad_slb_fault'; did you mean 'do_bad_slb_fault'? 
[-Werror=implicit-function-declaration]
     406 |         ____##func (regs);                                           
   \
         |         ^~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/include/asm/kprobes.h:5,
                    from arch/powerpc/include/asm/interrupt.h:73,
                    from arch/powerpc/mm/book3s64/slb.c:13:
   arch/powerpc/mm/book3s64/slb.c: In function '____do_slb_fault':
   include/asm-generic/kprobes.h:14:29: error: initializer element is not 
constant
      14 |         _kbl_addr_##fname = (unsigned long)fname;
         |                             ^
   include/asm-generic/kprobes.h:15:33: note: in expansion of macro 
'__NOKPROBE_SYMBOL'
      15 | # define NOKPROBE_SYMBOL(fname) __NOKPROBE_SYMBOL(fname)
         |                                 ^~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/interrupt.h:410:1: note: in expansion of macro 
'NOKPROBE_SYMBOL'
     410 | NOKPROBE_SYMBOL(func);                                               
   \
         | ^~~~~~~~~~~~~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/book3s64/slb.c:13:
   arch/powerpc/include/asm/interrupt.h:412:29: error: invalid storage class 
for function '____do_bad_slb_fault'
     412 | static __always_inline void ____##func(struct pt_regs *regs)
         |                             ^~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/interrupt.h:412:1: warning: ISO C90 forbids mixed 
declarations and code [-Wdeclaration-after-statement]
     412 | static __always_inline void ____##func(struct pt_regs *regs)
         | ^~~~~~
   arch/powerpc/mm/book3s64/slb.c:872:1: note: in expansion of macro 
'DEFINE_INTERRUPT_HANDLER'
     872 | DEFINE_INTERRUPT_HANDLER(do_bad_slb_fault)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/mm/book3s64/slb.c:886:1: error: expected declaration or 
statement at end of input
     886 | }
         | ^
   arch/powerpc/mm/book3s64/slb.c:887: error: control reaches end of non-void 
function [-Werror=return-type]
   cc1: some warnings being treated as errors


vim +398 arch/powerpc/include/asm/interrupt.h

8d41fc618ab804 Nicholas Piggin 2021-01-30  380  
8d41fc618ab804 Nicholas Piggin 2021-01-30  381  /**
8d41fc618ab804 Nicholas Piggin 2021-01-30  382   * DECLARE_INTERRUPT_HANDLER - 
Declare synchronous interrupt handler function
8d41fc618ab804 Nicholas Piggin 2021-01-30  383   * @func:       Function name 
of the entry point
8d41fc618ab804 Nicholas Piggin 2021-01-30  384   */
8d41fc618ab804 Nicholas Piggin 2021-01-30  385  #define 
DECLARE_INTERRUPT_HANDLER(func)                                 \
8d41fc618ab804 Nicholas Piggin 2021-01-30  386          __visible void 
func(struct pt_regs *regs)
8d41fc618ab804 Nicholas Piggin 2021-01-30  387  
8d41fc618ab804 Nicholas Piggin 2021-01-30  388  /**
8d41fc618ab804 Nicholas Piggin 2021-01-30  389   * DEFINE_INTERRUPT_HANDLER - 
Define synchronous interrupt handler function
8d41fc618ab804 Nicholas Piggin 2021-01-30  390   * @func:       Function name 
of the entry point
8d41fc618ab804 Nicholas Piggin 2021-01-30  391   *
8d41fc618ab804 Nicholas Piggin 2021-01-30  392   * @func is called from ASM 
entry code.
8d41fc618ab804 Nicholas Piggin 2021-01-30  393   *
8d41fc618ab804 Nicholas Piggin 2021-01-30  394   * The macro is written so it 
acts as function definition. Append the
8d41fc618ab804 Nicholas Piggin 2021-01-30  395   * body with a pair of curly 
brackets.
8d41fc618ab804 Nicholas Piggin 2021-01-30  396   */
8d41fc618ab804 Nicholas Piggin 2021-01-30  397  #define 
DEFINE_INTERRUPT_HANDLER(func)                                  \
8d41fc618ab804 Nicholas Piggin 2021-01-30 @398  static __always_inline void 
____##func(struct pt_regs *regs);           \
8d41fc618ab804 Nicholas Piggin 2021-01-30  399                                  
                                        \
e4bb64c7a42e61 Nicholas Piggin 2021-02-11 @400  interrupt_handler void 
func(struct pt_regs *regs)                       \
8d41fc618ab804 Nicholas Piggin 2021-01-30  401  {                               
                                        \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  402          struct interrupt_state 
state;                                   \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  403                                  
                                        \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  404          
interrupt_enter_prepare(regs, &state);                          \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  405                                  
                                        \
8d41fc618ab804 Nicholas Piggin 2021-01-30  406          ____##func (regs);      
                                        \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  407                                  
                                        \
25b7e6bb743ca5 Nicholas Piggin 2021-01-30  408          
interrupt_exit_prepare(regs, &state);                           \
8d41fc618ab804 Nicholas Piggin 2021-01-30  409  }                               
                                        \
e4bb64c7a42e61 Nicholas Piggin 2021-02-11  410  NOKPROBE_SYMBOL(func);          
                                        \
8d41fc618ab804 Nicholas Piggin 2021-01-30  411                                  
                                        \
8d41fc618ab804 Nicholas Piggin 2021-01-30  412  static __always_inline void 
____##func(struct pt_regs *regs)
8d41fc618ab804 Nicholas Piggin 2021-01-30  413  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to