Separate lkml-attach version due to size. Note that your kernel won't compile after this: you need arch support, and almost all functionality other than loading and unloading is not implemented: they are handled in follow-on patches (which all exist 8). Diffstat breakdown: Core: include/linux/init.h | 100 - kernel/module.c | 10 include/linux/kmod.h | 1 include/linux/module.h | 698 ++------ kernel/kmod.c | 2 kernel/ksyms.c | 8 kernel/module.c | 2052 ++++++++++-------------- fs/proc/proc_misc.c | 12 include/linux/elf.h | 45 init/Kconfig | 21 init/main.c | 5 kernel/sys.c | 2 Build (and commenting out kallsyms for the moment): Makefile | 17 kernel/Makefile | 4 arch/i386/Kconfig | 15 arch/ia64/Kconfig | 14 arch/ppc/Kconfig | 6 arch/x86_64/Kconfig | 14 scripts/Makefile.modinst | 4 Broken by module.h not including version.h: drivers/block/floppy.c | 1 Uses can_unload(): drivers/char/ftape/compressor/zftape-compress.c | 9 net/ipv6/af_inet6.c | 5 Deref struct module even when !CONFIG_MODULES: kernel/exec_domain.c | 7 net/ipv4/netfilter/ip_nat_helper.c | 8 Hacks refcounts directly: fs/filesystems.c | 16 Needs "no_module_init;" declaration: lib/zlib_deflate/deflate_syms.c | 2 lib/zlib_inflate/inflate_syms.c | 2 29 files changed, 1330 insertions(+), 1758 deletions(-) -- Anyone who quotes me in their sig is an idiot. -- Rusty Russell.