sched/headers, RCU: Move rcu_copy_process() from <linux/sched/task.h> to kernel/fork.c
Move rcu_copy_process() into kernel/fork.c, which is the only user of this inline function. This simplifies <linux/sched/task.h> to the level that <linux/sched.h> does not have to be included in it anymore - which change is done in a subsequent patch. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
901b14bd94
commit
6bfbaa51ed
|
@ -25,21 +25,6 @@ extern asmlinkage void schedule_tail(struct task_struct *prev);
|
||||||
extern void init_idle(struct task_struct *idle, int cpu);
|
extern void init_idle(struct task_struct *idle, int cpu);
|
||||||
extern void init_idle_bootup_task(struct task_struct *idle);
|
extern void init_idle_bootup_task(struct task_struct *idle);
|
||||||
|
|
||||||
static inline void rcu_copy_process(struct task_struct *p)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_PREEMPT_RCU
|
|
||||||
p->rcu_read_lock_nesting = 0;
|
|
||||||
p->rcu_read_unlock_special.s = 0;
|
|
||||||
p->rcu_blocked_node = NULL;
|
|
||||||
INIT_LIST_HEAD(&p->rcu_node_entry);
|
|
||||||
#endif /* #ifdef CONFIG_PREEMPT_RCU */
|
|
||||||
#ifdef CONFIG_TASKS_RCU
|
|
||||||
p->rcu_tasks_holdout = false;
|
|
||||||
INIT_LIST_HEAD(&p->rcu_tasks_holdout_list);
|
|
||||||
p->rcu_tasks_idle_cpu = -1;
|
|
||||||
#endif /* #ifdef CONFIG_TASKS_RCU */
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int sched_fork(unsigned long clone_flags, struct task_struct *p);
|
extern int sched_fork(unsigned long clone_flags, struct task_struct *p);
|
||||||
extern void sched_dead(struct task_struct *p);
|
extern void sched_dead(struct task_struct *p);
|
||||||
|
|
||||||
|
|
|
@ -1465,6 +1465,21 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
|
||||||
task->pids[type].pid = pid;
|
task->pids[type].pid = pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void rcu_copy_process(struct task_struct *p)
|
||||||
|
{
|
||||||
|
#ifdef CONFIG_PREEMPT_RCU
|
||||||
|
p->rcu_read_lock_nesting = 0;
|
||||||
|
p->rcu_read_unlock_special.s = 0;
|
||||||
|
p->rcu_blocked_node = NULL;
|
||||||
|
INIT_LIST_HEAD(&p->rcu_node_entry);
|
||||||
|
#endif /* #ifdef CONFIG_PREEMPT_RCU */
|
||||||
|
#ifdef CONFIG_TASKS_RCU
|
||||||
|
p->rcu_tasks_holdout = false;
|
||||||
|
INIT_LIST_HEAD(&p->rcu_tasks_holdout_list);
|
||||||
|
p->rcu_tasks_idle_cpu = -1;
|
||||||
|
#endif /* #ifdef CONFIG_TASKS_RCU */
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This creates a new process as a copy of the old one,
|
* This creates a new process as a copy of the old one,
|
||||||
* but does not actually start it yet.
|
* but does not actually start it yet.
|
||||||
|
|
Loading…
Reference in New Issue