Hi Jason,
I love your patch! Yet something to improve:
[auto build test ERROR on ras/edac-for-next] [also build test ERROR on linus/master v6.1-rc5 next-20221115] [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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Baron/EDAC-edac_module-... base: https://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git edac-for-next patch link: https://lore.kernel.org/r/20221116003729.194802-1-jbaron%40akamai.com patch subject: [PATCH] EDAC/edac_module: order edac_init() before ghes_edac_register() config: powerpc-allmodconfig compiler: powerpc-linux-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/a970ee7e983345d07bd1f3e455688e... git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jason-Baron/EDAC-edac_module-order-edac_init-before-ghes_edac_register/20221116-084046 git checkout a970ee7e983345d07bd1f3e455688ef753f32a45 # 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=powerpc SHELL=/bin/bash drivers/
If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot lkp@intel.com
All error/warnings (new ones prefixed by >>):
drivers/edac/edac_module.c: In function 'edac_init_clear_parity_errors': drivers/edac/edac_module.c:162:16: error: 'return' with a value, in function returning void [-Werror=return-type] 162 | return 0; | ^ drivers/edac/edac_module.c:151:20: note: declared here 151 | static void __init edac_init_clear_parity_errors(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/device/driver.h:21, from include/linux/device.h:32, from include/linux/edac.h:16, from drivers/edac/edac_module.c:13: drivers/edac/edac_module.c: At top level: include/linux/module.h:130:49: error: redefinition of '__inittest' 130 | static inline initcall_t __maybe_unused __inittest(void) \ | ^~~~~~~~~~ include/linux/module.h:116:41: note: in expansion of macro 'module_init' 116 | #define subsys_initcall(fn) module_init(fn) | ^~~~~~~~~~~ drivers/edac/edac_module.c:177:1: note: in expansion of macro 'subsys_initcall' 177 | subsys_initcall(edac_init_clear_parity_errors); | ^~~~~~~~~~~~~~~ include/linux/module.h:130:49: note: previous definition of '__inittest' with type 'int (*(void))(void)' 130 | static inline initcall_t __maybe_unused __inittest(void) \ | ^~~~~~~~~~ include/linux/module.h:115:41: note: in expansion of macro 'module_init' 115 | #define arch_initcall(fn) module_init(fn) | ^~~~~~~~~~~ drivers/edac/edac_module.c:171:1: note: in expansion of macro 'arch_initcall' 171 | arch_initcall(edac_init); | ^~~~~~~~~~~~~ drivers/edac/edac_module.c: In function '__inittest':
drivers/edac/edac_module.c:177:17: error: returning 'void (*)(void)' from a function with incompatible return type 'initcall_t' {aka 'int (*)(void)'} [-Werror=incompatible-pointer-types]
177 | subsys_initcall(edac_init_clear_parity_errors); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/module.h:131:18: note: in definition of macro 'module_init' 131 | { return initfn; } \ | ^~~~~~ drivers/edac/edac_module.c:177:1: note: in expansion of macro 'subsys_initcall' 177 | subsys_initcall(edac_init_clear_parity_errors); | ^~~~~~~~~~~~~~~ drivers/edac/edac_module.c: At top level: include/linux/module.h:132:13: error: redefinition of 'init_module' 132 | int init_module(void) __copy(initfn) \ | ^~~~~~~~~~~ include/linux/module.h:116:41: note: in expansion of macro 'module_init' 116 | #define subsys_initcall(fn) module_init(fn) | ^~~~~~~~~~~ drivers/edac/edac_module.c:177:1: note: in expansion of macro 'subsys_initcall' 177 | subsys_initcall(edac_init_clear_parity_errors); | ^~~~~~~~~~~~~~~ include/linux/module.h:132:13: note: previous definition of 'init_module' with type 'int(void)' 132 | int init_module(void) __copy(initfn) \ | ^~~~~~~~~~~ include/linux/module.h:115:41: note: in expansion of macro 'module_init' 115 | #define arch_initcall(fn) module_init(fn) | ^~~~~~~~~~~ drivers/edac/edac_module.c:171:1: note: in expansion of macro 'arch_initcall' 171 | arch_initcall(edac_init); | ^~~~~~~~~~~~~
include/linux/module.h:132:13: warning: 'init_module' alias between functions of incompatible types 'int(void)' and 'void(void)' [-Wattribute-alias=]
132 | int init_module(void) __copy(initfn) \ | ^~~~~~~~~~~ include/linux/module.h:116:41: note: in expansion of macro 'module_init' 116 | #define subsys_initcall(fn) module_init(fn) | ^~~~~~~~~~~ drivers/edac/edac_module.c:177:1: note: in expansion of macro 'subsys_initcall' 177 | subsys_initcall(edac_init_clear_parity_errors); | ^~~~~~~~~~~~~~~ drivers/edac/edac_module.c:151:20: note: aliased declaration here 151 | static void __init edac_init_clear_parity_errors(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors
vim +177 drivers/edac/edac_module.c
173 174 /* 175 * Clear parity errors after PCI subsys is initialized 176 */
177 subsys_initcall(edac_init_clear_parity_errors);
178