Older kernel version
//source/kernel/module.c
/* This is where the real work happens */
SYSCALL_DEFINE3(init_module, void __user *, umod,
unsigned long, len, const char __user *, uargs)
{
......
load_module(umod, len, uargs);
........
do_one_initcall(mod->init);
}
V3.8.0
SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
{
......
copy_module_from_fd();
......
load_module();
}
SYSCALL_DEFINE3(init_module, void __user *, umod,
unsigned long, len, const char __user *, uargs)
{
......
copy_module_from_user(umod, len, &info);
......
return load_module(&info, uargs, 0);
}