This series had an interesting genesis in chain on effects, typical of how things can creep and spill over. I wanted to clobber pointless instances of #include <linux/init.h> mostly left behind from __cpuinit and __devinit removal. But to fully complete that, I had to plan to move module_init into module.h; which meant to get rid of the non-modular callers of module_init(). But I couldn't replace them with the 1:1 mapping to __initcall(), because we aren't supposed to use that anymore. And finally, I couldn't just use the 1:1 mapping of __initcall to device_initcall(), because it looks like crap to be using device_initcall in what is clearly not device/driver code. And hence we end up being faced with checking and/or changing initcall ordering. Here we fix up kernel/ and mm/ -- the one point of interest was uncovering an oops when trying to make ksm_init a subsys_initcall, which in turn led to the 1st patch in the series, which reprioritized creation of the mm_kobj. There are other __initcall in mm/ that we probably want to look at and reprioritize in the future. But for now I just fixed the one that was obviously problematic and blocking the other required priority changes in ksm.c and huge_memory.c Boot tested on today's master, with x86-32 and powerpc (sbc8548). For completeness, here is what happens when one tries to make ksm_init as subsys_initcall, if the mm_kobj is created too late in device_initcall. Paul. ------------[ cut here ]------------ kernel BUG at fs/sysfs/group.c:94! invalid opcode: 0000 [#1] SMP Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.13.0-rc8+ #12 Hardware name: Dell Computer Corporation OptiPlex GX270 /0Y1057, BIOS A07 06/26/2006 task: f5860000 ti: f5846000 task.ti: f5846000 EIP: 0060:[<c11884d4>] EFLAGS: 00010246 CPU: 0 EIP is at internal_create_group+0x244/0x270 EAX: 00000000 EBX: c199e5c9 ECX: c1929f60 EDX: 00000000 ESI: f59947c0 EDI: 00000000 EBP: f5847ed8 ESP: f5847ea4 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 CR0: 8005003b CR2: ffe14000 CR3: 01a2b000 CR4: 000007d0 Stack: f59947c0 f5847ed4 c106fdfb 00000000 34561000 00000000 00000000 00000000 c1929f60 f59947c0 c199e5c9 f59947c0 00000000 f5847ee0 c118852c f5847f00 c199e68c c111cde0 00000000 ffffffff c1856da4 c199e5c9 00000004 f5847f70 Call Trace: [<c106fdfb>] ? try_to_wake_up+0x18b/0x230 [<c199e5c9>] ? procswaps_init+0x27/0x27 [<c118852c>] sysfs_create_group+0xc/0x10 [<c199e68c>] ksm_init+0xc3/0x15b [<c111cde0>] ? run_store+0x2b0/0x2b0 [<c199e5c9>] ? procswaps_init+0x27/0x27 [<c10004b2>] do_one_initcall+0xe2/0x140 [<c1061463>] ? parameq+0x13/0x70 [<c197e4cc>] ? do_early_param+0x7a/0x7a [<c1061699>] ? parse_args+0x1d9/0x340 [<c107c6a0>] ? __wake_up+0x40/0x50 [<c197eb73>] kernel_init_freeable+0x129/0x1cd [<c197e4cc>] ? do_early_param+0x7a/0x7a [<c16bd19b>] kernel_init+0xb/0x100 [<c16d44b7>] ret_from_kernel_thread+0x1b/0x28 [<c16bd190>] ? rest_init+0x60/0x60 --- Paul Gortmaker (3): mm: make creation of the mm_kobj happen earlier than device_initcall kernel: audit/fix non-modular users of module_init in core code mm: audit/fix non-modular users of module_init in core code kernel/hung_task.c | 3 +-- kernel/kexec.c | 4 ++-- kernel/profile.c | 2 +- kernel/sched/stats.c | 2 +- kernel/user.c | 3 +-- kernel/user_namespace.c | 2 +- mm/huge_memory.c | 2 +- mm/ksm.c | 2 +- mm/mm_init.c | 3 +-- mm/mmap.c | 6 +++--- mm/mmu_notifier.c | 3 +-- 11 files changed, 14 insertions(+), 18 deletions(-) -- 1.8.5.2 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>