init_task's preempt_notifiers is initialized at two times.

1) sched_init()
   -> INIT_HLIST_HEAD(&init_task.preempt_notifiers)
2) sched_init()
   -> init_idle(current,) <--- current task is init_task at this time
    -> __sched_fork(,current)
     -> INIT_HLIST_HEAD(&p->preempt_notifiers)

I think first one is needless, remove it.

Signed-off-by: seokhoon.yoon <[email protected]>
---
 kernel/sched/core.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5c883fe..5760f62 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7482,10 +7482,6 @@ void __init sched_init(void)
 
        set_load_weight(&init_task);
 
-#ifdef CONFIG_PREEMPT_NOTIFIERS
-       INIT_HLIST_HEAD(&init_task.preempt_notifiers);
-#endif
-
        /*
         * The boot idle thread does lazy MMU switching as well:
         */
-- 
1.9.1

Reply via email to