Re: [PATCH v2] module: Add CONFIG_MODULE_LOAD_IN_SEQUENCE option

From: kernel test robot
Date: Thu Oct 12 2023 - 14:36:54 EST


Hi Joey,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mcgrof/modules-next]
[also build test WARNING on linus/master v6.6-rc5 next-20231012]
[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/Joey-Jiao/module-Add-CONFIG_MODULE_LOAD_IN_SEQUENCE-option/20231011-154640
base: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
patch link: https://lore.kernel.org/r/20231011074438.6098-1-quic_jiangenj%40quicinc.com
patch subject: [PATCH v2] module: Add CONFIG_MODULE_LOAD_IN_SEQUENCE option
config: um-i386_defconfig (https://download.01.org/0day-ci/archive/20231013/202310130206.F778HuNp-lkp@xxxxxxxxx/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231013/202310130206.F778HuNp-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310130206.F778HuNp-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

kernel/module/main.c: In function 'do_init_module':
kernel/module/main.c:2627:12: error: invalid storage class for function 'may_init_module'
static int may_init_module(void)
^~~~~~~~~~~~~~~
kernel/module/main.c:2636:13: error: invalid storage class for function 'finished_loading'
static bool finished_loading(const char *name)
^~~~~~~~~~~~~~~~
kernel/module/main.c:2657:12: error: invalid storage class for function 'module_patient_check_exists'
static int module_patient_check_exists(const char *name,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/module/main.c:2701:12: error: invalid storage class for function 'add_unformed_module'
static int add_unformed_module(struct module *mod)
^~~~~~~~~~~~~~~~~~~
kernel/module/main.c:2722:12: error: invalid storage class for function 'complete_formation'
static int complete_formation(struct module *mod, struct load_info *info)
^~~~~~~~~~~~~~~~~~
kernel/module/main.c:2755:12: error: invalid storage class for function 'prepare_coming_module'
static int prepare_coming_module(struct module *mod)
^~~~~~~~~~~~~~~~~~~~~
kernel/module/main.c:2773:12: error: invalid storage class for function 'unknown_module_param_cb'
static int unknown_module_param_cb(char *param, char *val, const char *modname,
^~~~~~~~~~~~~~~~~~~~~~~
kernel/module/main.c:2793:12: error: invalid storage class for function 'early_mod_check'
static int early_mod_check(struct load_info *info, int flags)
^~~~~~~~~~~~~~~
kernel/module/main.c:2829:12: error: invalid storage class for function 'load_module'
static int load_module(struct load_info *info, const char __user *uargs,
^~~~~~~~~~~
>> kernel/module/main.c:3039:1: warning: 'alias' attribute ignored [-Wattributes]
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
In file included from kernel/module/main.c:26:0:
include/linux/syscalls.h:247:21: error: invalid storage class for function '__do_sys_init_module'
static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3039:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:249:18: error: static declaration of '__se_sys_init_module' follows non-static declaration
asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3039:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:18: note: previous declaration of '__se_sys_init_module' was here
asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3039:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
kernel/module/main.c: In function '__se_sys_init_module':
include/linux/syscalls.h:251:14: error: implicit declaration of function '__do_sys_init_module'; did you mean '__se_sys_init_module'? [-Werror=implicit-function-declaration]
long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3039:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
kernel/module/main.c: In function 'do_init_module':
include/linux/syscalls.h:257:21: error: invalid storage class for function '__do_sys_init_module'
static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3039:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(init_module, void __user *, umod,
^~~~~~~~~~~~~~~
kernel/module/main.c:3073:13: error: invalid storage class for function 'idempotent'
static bool idempotent(struct idempotent *u, const void *cookie)
^~~~~~~~~~
kernel/module/main.c:3104:12: error: invalid storage class for function 'idempotent_complete'
static int idempotent_complete(struct idempotent *u, int ret)
^~~~~~~~~~~~~~~~~~~
kernel/module/main.c:3124:12: error: invalid storage class for function 'init_module_from_file'
static int init_module_from_file(struct file *f, const char __user * uargs, int flags)
^~~~~~~~~~~~~~~~~~~~~
kernel/module/main.c:3152:12: error: invalid storage class for function 'idempotent_init_module'
static int idempotent_init_module(struct file *f, const char __user * uargs, int flags)
^~~~~~~~~~~~~~~~~~~~~~
kernel/module/main.c:3170:1: warning: 'alias' attribute ignored [-Wattributes]
SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
^~~~~~~~~~~~~~~
In file included from kernel/module/main.c:26:0:
include/linux/syscalls.h:247:21: error: invalid storage class for function '__do_sys_finit_module'
static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
kernel/module/main.c:3170:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
^~~~~~~~~~~~~~~
include/linux/syscalls.h:249:18: error: static declaration of '__se_sys_finit_module' follows non-static declaration
asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^
include/linux/syscalls.h:230:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'


vim +/alias +3039 kernel/module/main.c

b99b87f70c7785 kernel/module.c Peter Oberparleiter 2009-06-17 3038
17da2bd90abf42 kernel/module.c Heiko Carstens 2009-01-14 @3039 SYSCALL_DEFINE3(init_module, void __user *, umod,
17da2bd90abf42 kernel/module.c Heiko Carstens 2009-01-14 3040 unsigned long, len, const char __user *, uargs)
^1da177e4c3f41 kernel/module.c Linus Torvalds 2005-04-16 3041 {
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3042 int err;
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3043 struct load_info info = { };
^1da177e4c3f41 kernel/module.c Linus Torvalds 2005-04-16 3044
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3045 err = may_init_module();
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3046 if (err)
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3047 return err;
^1da177e4c3f41 kernel/module.c Linus Torvalds 2005-04-16 3048
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3049 pr_debug("init_module: umod=%p, len=%lu, uargs=%p\n",
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3050 umod, len, uargs);
^1da177e4c3f41 kernel/module.c Linus Torvalds 2005-04-16 3051
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3052 err = copy_module_from_user(umod, len, &info);
df3e764d8e5cd4 kernel/module/main.c Luis Chamberlain 2023-03-28 3053 if (err) {
df3e764d8e5cd4 kernel/module/main.c Luis Chamberlain 2023-03-28 3054 mod_stat_inc(&failed_kreads);
df3e764d8e5cd4 kernel/module/main.c Luis Chamberlain 2023-03-28 3055 mod_stat_add_long(len, &invalid_kread_bytes);
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 3056 return err;
df3e764d8e5cd4 kernel/module/main.c Luis Chamberlain 2023-03-28 3057 }
^1da177e4c3f41 kernel/module.c Linus Torvalds 2005-04-16 3058
2f3238aebedb24 kernel/module.c Rusty Russell 2012-10-22 3059 return load_module(&info, uargs, 0);
e24e2e64c468c8 kernel/module.c Alexey Dobriyan 2008-03-10 3060 }
94462ad3b14739 kernel/module.c Steven Rostedt 2010-11-29 3061

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki