diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/init/main.c b/init/main.c index 3bdb152f412f..94f65efdc65a 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -70,7 +70,6 @@ | |||
70 | #include <linux/sfi.h> | 70 | #include <linux/sfi.h> |
71 | #include <linux/shmem_fs.h> | 71 | #include <linux/shmem_fs.h> |
72 | #include <linux/slab.h> | 72 | #include <linux/slab.h> |
73 | #include <trace/boot.h> | ||
74 | 73 | ||
75 | #include <asm/io.h> | 74 | #include <asm/io.h> |
76 | #include <asm/bugs.h> | 75 | #include <asm/bugs.h> |
@@ -715,38 +714,33 @@ int initcall_debug; | |||
715 | core_param(initcall_debug, initcall_debug, bool, 0644); | 714 | core_param(initcall_debug, initcall_debug, bool, 0644); |
716 | 715 | ||
717 | static char msgbuf[64]; | 716 | static char msgbuf[64]; |
718 | static struct boot_trace_call call; | ||
719 | static struct boot_trace_ret ret; | ||
720 | 717 | ||
721 | int do_one_initcall(initcall_t fn) | 718 | int do_one_initcall(initcall_t fn) |
722 | { | 719 | { |
723 | int count = preempt_count(); | 720 | int count = preempt_count(); |
724 | ktime_t calltime, delta, rettime; | 721 | ktime_t calltime, delta, rettime; |
722 | unsigned long long duration; | ||
723 | int ret; | ||
725 | 724 | ||
726 | if (initcall_debug) { | 725 | if (initcall_debug) { |
727 | call.caller = task_pid_nr(current); | 726 | printk("calling %pF @ %i\n", fn, task_pid_nr(current)); |
728 | printk("calling %pF @ %i\n", fn, call.caller); | ||
729 | calltime = ktime_get(); | 727 | calltime = ktime_get(); |
730 | trace_boot_call(&call, fn); | ||
731 | enable_boot_trace(); | ||
732 | } | 728 | } |
733 | 729 | ||
734 | ret.result = fn(); | 730 | ret = fn(); |
735 | 731 | ||
736 | if (initcall_debug) { | 732 | if (initcall_debug) { |
737 | disable_boot_trace(); | ||
738 | rettime = ktime_get(); | 733 | rettime = ktime_get(); |
739 | delta = ktime_sub(rettime, calltime); | 734 | delta = ktime_sub(rettime, calltime); |
740 | ret.duration = (unsigned long long) ktime_to_ns(delta) >> 10; | 735 | duration = (unsigned long long) ktime_to_ns(delta) >> 10; |
741 | trace_boot_ret(&ret, fn); | 736 | printk("initcall %pF returned %d after %lld usecs\n", fn, |
742 | printk("initcall %pF returned %d after %Ld usecs\n", fn, | 737 | ret, duration); |
743 | ret.result, ret.duration); | ||
744 | } | 738 | } |
745 | 739 | ||
746 | msgbuf[0] = 0; | 740 | msgbuf[0] = 0; |
747 | 741 | ||
748 | if (ret.result && ret.result != -ENODEV && initcall_debug) | 742 | if (ret && ret != -ENODEV && initcall_debug) |
749 | sprintf(msgbuf, "error code %d ", ret.result); | 743 | sprintf(msgbuf, "error code %d ", ret); |
750 | 744 | ||
751 | if (preempt_count() != count) { | 745 | if (preempt_count() != count) { |
752 | strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf)); | 746 | strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf)); |
@@ -760,7 +754,7 @@ int do_one_initcall(initcall_t fn) | |||
760 | printk("initcall %pF returned with %s\n", fn, msgbuf); | 754 | printk("initcall %pF returned with %s\n", fn, msgbuf); |
761 | } | 755 | } |
762 | 756 | ||
763 | return ret.result; | 757 | return ret; |
764 | } | 758 | } |
765 | 759 | ||
766 | 760 | ||
@@ -880,7 +874,6 @@ static int __init kernel_init(void * unused) | |||
880 | smp_prepare_cpus(setup_max_cpus); | 874 | smp_prepare_cpus(setup_max_cpus); |
881 | 875 | ||
882 | do_pre_smp_initcalls(); | 876 | do_pre_smp_initcalls(); |
883 | start_boot_trace(); | ||
884 | 877 | ||
885 | smp_init(); | 878 | smp_init(); |
886 | sched_init_smp(); | 879 | sched_init_smp(); |