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-...
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/797b527549df3f1f8e4d9f2bafeb5fe5e...
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(a)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