aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/main.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/init/main.c b/init/main.c
index b8b6effe9ff4..dbee132923c5 100644
--- a/init/main.c
+++ b/init/main.c
@@ -721,27 +721,33 @@ core_param(initcall_debug, initcall_debug, bool, 0644);
721 721
722static char msgbuf[64]; 722static char msgbuf[64];
723 723
724int do_one_initcall(initcall_t fn) 724static int do_one_initcall_debug(initcall_t fn)
725{ 725{
726 int count = preempt_count();
727 ktime_t calltime, delta, rettime; 726 ktime_t calltime, delta, rettime;
728 unsigned long long duration; 727 unsigned long long duration;
729 int ret; 728 int ret;
730 729
731 if (initcall_debug) { 730 printk(KERN_DEBUG "calling %pF @ %i\n", fn, task_pid_nr(current));
732 printk("calling %pF @ %i\n", fn, task_pid_nr(current)); 731 calltime = ktime_get();
733 calltime = ktime_get();
734 }
735
736 ret = fn(); 732 ret = fn();
733 rettime = ktime_get();
734 delta = ktime_sub(rettime, calltime);
735 duration = (unsigned long long) ktime_to_ns(delta) >> 10;
736 printk(KERN_DEBUG "initcall %pF returned %d after %lld usecs\n", fn,
737 ret, duration);
737 738
738 if (initcall_debug) { 739 return ret;
739 rettime = ktime_get(); 740}
740 delta = ktime_sub(rettime, calltime); 741
741 duration = (unsigned long long) ktime_to_ns(delta) >> 10; 742int do_one_initcall(initcall_t fn)
742 printk("initcall %pF returned %d after %lld usecs\n", fn, 743{
743 ret, duration); 744 int count = preempt_count();
744 } 745 int ret;
746
747 if (initcall_debug)
748 ret = do_one_initcall_debug(fn);
749 else
750 ret = fn();
745 751
746 msgbuf[0] = 0; 752 msgbuf[0] = 0;
747 753