diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/init/main.c b/init/main.c index 1687b0167c4a..a87d4ca5c36c 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -52,12 +52,14 @@ | |||
52 | #include <linux/unwind.h> | 52 | #include <linux/unwind.h> |
53 | #include <linux/buffer_head.h> | 53 | #include <linux/buffer_head.h> |
54 | #include <linux/debug_locks.h> | 54 | #include <linux/debug_locks.h> |
55 | #include <linux/debugobjects.h> | ||
55 | #include <linux/lockdep.h> | 56 | #include <linux/lockdep.h> |
56 | #include <linux/pid_namespace.h> | 57 | #include <linux/pid_namespace.h> |
57 | #include <linux/device.h> | 58 | #include <linux/device.h> |
58 | #include <linux/kthread.h> | 59 | #include <linux/kthread.h> |
59 | #include <linux/sched.h> | 60 | #include <linux/sched.h> |
60 | #include <linux/signal.h> | 61 | #include <linux/signal.h> |
62 | #include <linux/idr.h> | ||
61 | 63 | ||
62 | #include <asm/io.h> | 64 | #include <asm/io.h> |
63 | #include <asm/bugs.h> | 65 | #include <asm/bugs.h> |
@@ -458,7 +460,7 @@ static void noinline __init_refok rest_init(void) | |||
458 | kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); | 460 | kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); |
459 | numa_default_policy(); | 461 | numa_default_policy(); |
460 | pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); | 462 | pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); |
461 | kthreadd_task = find_task_by_pid(pid); | 463 | kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); |
462 | unlock_kernel(); | 464 | unlock_kernel(); |
463 | 465 | ||
464 | /* | 466 | /* |
@@ -542,6 +544,7 @@ asmlinkage void __init start_kernel(void) | |||
542 | */ | 544 | */ |
543 | unwind_init(); | 545 | unwind_init(); |
544 | lockdep_init(); | 546 | lockdep_init(); |
547 | debug_objects_early_init(); | ||
545 | cgroup_init_early(); | 548 | cgroup_init_early(); |
546 | 549 | ||
547 | local_irq_disable(); | 550 | local_irq_disable(); |
@@ -559,6 +562,7 @@ asmlinkage void __init start_kernel(void) | |||
559 | printk(KERN_NOTICE); | 562 | printk(KERN_NOTICE); |
560 | printk(linux_banner); | 563 | printk(linux_banner); |
561 | setup_arch(&command_line); | 564 | setup_arch(&command_line); |
565 | mm_init_owner(&init_mm, &init_task); | ||
562 | setup_command_line(command_line); | 566 | setup_command_line(command_line); |
563 | unwind_setup(); | 567 | unwind_setup(); |
564 | setup_per_cpu_areas(); | 568 | setup_per_cpu_areas(); |
@@ -636,6 +640,8 @@ asmlinkage void __init start_kernel(void) | |||
636 | enable_debug_pagealloc(); | 640 | enable_debug_pagealloc(); |
637 | cpu_hotplug_init(); | 641 | cpu_hotplug_init(); |
638 | kmem_cache_init(); | 642 | kmem_cache_init(); |
643 | debug_objects_mem_init(); | ||
644 | idr_init_cache(); | ||
639 | setup_per_cpu_pageset(); | 645 | setup_per_cpu_pageset(); |
640 | numa_policy_init(); | 646 | numa_policy_init(); |
641 | if (late_time_init) | 647 | if (late_time_init) |
@@ -700,10 +706,8 @@ static void __init do_initcalls(void) | |||
700 | int result; | 706 | int result; |
701 | 707 | ||
702 | if (initcall_debug) { | 708 | if (initcall_debug) { |
703 | printk("Calling initcall 0x%p", *call); | 709 | print_fn_descriptor_symbol("calling %s()\n", |
704 | print_fn_descriptor_symbol(": %s()", | ||
705 | (unsigned long) *call); | 710 | (unsigned long) *call); |
706 | printk("\n"); | ||
707 | t0 = ktime_get(); | 711 | t0 = ktime_get(); |
708 | } | 712 | } |
709 | 713 | ||
@@ -713,15 +717,10 @@ static void __init do_initcalls(void) | |||
713 | t1 = ktime_get(); | 717 | t1 = ktime_get(); |
714 | delta = ktime_sub(t1, t0); | 718 | delta = ktime_sub(t1, t0); |
715 | 719 | ||
716 | printk("initcall 0x%p", *call); | 720 | print_fn_descriptor_symbol("initcall %s()", |
717 | print_fn_descriptor_symbol(": %s()", | ||
718 | (unsigned long) *call); | 721 | (unsigned long) *call); |
719 | printk(" returned %d.\n", result); | 722 | printk(" returned %d after %Ld msecs\n", result, |
720 | 723 | (unsigned long long) delta.tv64 >> 20); | |
721 | printk("initcall 0x%p ran for %Ld msecs: ", | ||
722 | *call, (unsigned long long)delta.tv64 >> 20); | ||
723 | print_fn_descriptor_symbol("%s()\n", | ||
724 | (unsigned long) *call); | ||
725 | } | 724 | } |
726 | 725 | ||
727 | if (result && result != -ENODEV && initcall_debug) { | 726 | if (result && result != -ENODEV && initcall_debug) { |
@@ -737,10 +736,9 @@ static void __init do_initcalls(void) | |||
737 | local_irq_enable(); | 736 | local_irq_enable(); |
738 | } | 737 | } |
739 | if (msg) { | 738 | if (msg) { |
740 | printk(KERN_WARNING "initcall at 0x%p", *call); | 739 | print_fn_descriptor_symbol(KERN_WARNING "initcall %s()", |
741 | print_fn_descriptor_symbol(": %s()", | ||
742 | (unsigned long) *call); | 740 | (unsigned long) *call); |
743 | printk(": returned with %s\n", msg); | 741 | printk(" returned with %s\n", msg); |
744 | } | 742 | } |
745 | } | 743 | } |
746 | 744 | ||
@@ -807,6 +805,8 @@ static int noinline init_post(void) | |||
807 | (void) sys_dup(0); | 805 | (void) sys_dup(0); |
808 | (void) sys_dup(0); | 806 | (void) sys_dup(0); |
809 | 807 | ||
808 | current->signal->flags |= SIGNAL_UNKILLABLE; | ||
809 | |||
810 | if (ramdisk_execute_command) { | 810 | if (ramdisk_execute_command) { |
811 | run_init_process(ramdisk_execute_command); | 811 | run_init_process(ramdisk_execute_command); |
812 | printk(KERN_WARNING "Failed to execute %s\n", | 812 | printk(KERN_WARNING "Failed to execute %s\n", |