diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 9a1d7e4faa2c6de27b6917d5843edea1dc17fa4b..1493b0a118d3cff3aa72ffc251f83ca0644e2416 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2130,10 +2130,6 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p) memset(&p->se.statistics, 0, sizeof(p->se.statistics)); #endif -#ifdef CONFIG_CPU_FREQ_STAT - cpufreq_task_stats_init(p); -#endif - RB_CLEAR_NODE(&p->dl.rb_node); init_dl_task_timer(&p->dl); __dl_clear_params(p); @@ -2219,6 +2215,10 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) unsigned long flags; int cpu = get_cpu(); +#ifdef CONFIG_CPU_FREQ_STAT + cpufreq_task_stats_init(p); +#endif + __sched_fork(clone_flags, p); /* * We mark the process as running here. This guarantees that