Hi Joe, Thank you for the patch! Yet something to improve: [auto build test ERROR on staging/staging-testing] url: https://github.com/intel-lab-lkp/linux/commits/Joe-Peterson/staging-board-Remove-control-flow-from-macro/20221203-110851 patch link: https://lore.kernel.org/r/20221203030544.11543-1-jwp.linux%40gmail.com patch subject: [PATCH] staging: board: Remove control flow from macro config: arm-defconfig compiler: arm-linux-gnueabi-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/a616a52b6e373eea55c8512c0e81494c6314c59b git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Joe-Peterson/staging-board-Remove-control-flow-from-macro/20221203-110851 git checkout a616a52b6e373eea55c8512c0e81494c6314c59b # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/linux/printk.h:6, from include/linux/kernel.h:29, from drivers/staging/board/kzm9d.c:4: >> drivers/staging/board/board.h:42:17: error: initialization of 'initcall_t' {aka 'int (*)(void)'} from incompatible pointer type 'void (*)(void)' [-Werror=incompatible-pointer-types] 42 | device_initcall(runtime_board_check) | ^~~~~~~~~~~~~~~~~~~ include/linux/init.h:250:55: note: in definition of macro '____define_initcall' 250 | __attribute__((__section__(__sec))) = fn; | ^~ include/linux/init.h:260:9: note: in expansion of macro '__unique_initcall' 260 | __unique_initcall(fn, id, __sec, __initcall_id(fn)) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:262:35: note: in expansion of macro '___define_initcall' 262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) | ^~~~~~~~~~~~~~~~~~ include/linux/init.h:291:41: note: in expansion of macro '__define_initcall' 291 | #define device_initcall(fn) __define_initcall(fn, 6) | ^~~~~~~~~~~~~~~~~ drivers/staging/board/board.h:42:1: note: in expansion of macro 'device_initcall' 42 | device_initcall(runtime_board_check) | ^~~~~~~~~~~~~~~ drivers/staging/board/kzm9d.c:26:1: note: in expansion of macro 'board_staging' 26 | board_staging("renesas,kzm9d", kzm9d_init); | ^~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/printk.h:6, from include/asm-generic/bug.h:22, from arch/arm/include/asm/bug.h:60, from include/linux/bug.h:5, from include/linux/thread_info.h:13, from include/asm-generic/preempt.h:5, from ./arch/arm/include/generated/asm/preempt.h:1, from include/linux/preempt.h:78, from include/linux/rcupdate.h:27, from include/linux/rculist.h:11, from include/linux/pid.h:5, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from include/linux/dma-mapping.h:7, from drivers/staging/board/armadillo800eva.c:12: >> drivers/staging/board/board.h:42:17: error: initialization of 'initcall_t' {aka 'int (*)(void)'} from incompatible pointer type 'void (*)(void)' [-Werror=incompatible-pointer-types] 42 | device_initcall(runtime_board_check) | ^~~~~~~~~~~~~~~~~~~ include/linux/init.h:250:55: note: in definition of macro '____define_initcall' 250 | __attribute__((__section__(__sec))) = fn; | ^~ include/linux/init.h:260:9: note: in expansion of macro '__unique_initcall' 260 | __unique_initcall(fn, id, __sec, __initcall_id(fn)) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:262:35: note: in expansion of macro '___define_initcall' 262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) | ^~~~~~~~~~~~~~~~~~ include/linux/init.h:291:41: note: in expansion of macro '__define_initcall' 291 | #define device_initcall(fn) __define_initcall(fn, 6) | ^~~~~~~~~~~~~~~~~ drivers/staging/board/board.h:42:1: note: in expansion of macro 'device_initcall' 42 | device_initcall(runtime_board_check) | ^~~~~~~~~~~~~~~ drivers/staging/board/armadillo800eva.c:88:1: note: in expansion of macro 'board_staging' 88 | board_staging("renesas,armadillo800eva", armadillo800eva_init); | ^~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +42 drivers/staging/board/board.h 72ee8626eeb1215 Geert Uytterhoeven 2015-06-17 25 382063d91e15434 Magnus Damm 2014-06-06 26 bool board_staging_dt_node_available(const struct resource *resource, 382063d91e15434 Magnus Damm 2014-06-06 27 unsigned int num_resources); 72ee8626eeb1215 Geert Uytterhoeven 2015-06-17 28 int board_staging_gic_setup_xlate(const char *gic_match, unsigned int base); 72ee8626eeb1215 Geert Uytterhoeven 2015-06-17 29 void board_staging_gic_fixup_resources(struct resource *res, unsigned int nres); 225d68d852f1636 Geert Uytterhoeven 2015-06-17 30 int board_staging_register_clock(const struct board_staging_clk *bsc); 225d68d852f1636 Geert Uytterhoeven 2015-06-17 31 int board_staging_register_device(const struct board_staging_dev *dev); 225d68d852f1636 Geert Uytterhoeven 2015-06-17 32 void board_staging_register_devices(const struct board_staging_dev *devs, 225d68d852f1636 Geert Uytterhoeven 2015-06-17 33 unsigned int ndevs); 382063d91e15434 Magnus Damm 2014-06-06 34 382063d91e15434 Magnus Damm 2014-06-06 35 #define board_staging(str, fn) \ a616a52b6e373ee Joe Peterson 2022-12-02 36 static void __init runtime_board_check(void) \ 382063d91e15434 Magnus Damm 2014-06-06 37 { \ 382063d91e15434 Magnus Damm 2014-06-06 38 if (of_machine_is_compatible(str)) \ 382063d91e15434 Magnus Damm 2014-06-06 39 fn(); \ 382063d91e15434 Magnus Damm 2014-06-06 40 } \ 382063d91e15434 Magnus Damm 2014-06-06 41 \ b0c750f74e10fd3 Geert Uytterhoeven 2015-06-17 @42 device_initcall(runtime_board_check) 382063d91e15434 Magnus Damm 2014-06-06 43 -- 0-DAY CI Kernel Test Service https://01.org/lkp