[PATCH 2/3] powerpc: Refactor verification of MSR_RI

kernel test robot lkp at intel.com
Thu Aug 19 23:23:15 AEST 2021


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 <lkp at 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-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 73369 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20210819/ace9b30c/attachment-0001.gz>


More information about the Linuxppc-dev mailing list