diff --git a/[refs] b/[refs] index 27bfc5dc1d28..572245474017 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 27d162e26a873883937b64526445877bd3341d23 +refs/heads/master: 7cd9013be6c22f3ff6f777354f766c8c0b955e17 diff --git a/trunk/include/linux/sched.h b/trunk/include/linux/sched.h index ff2e09c953b9..62e6314382f0 100644 --- a/trunk/include/linux/sched.h +++ b/trunk/include/linux/sched.h @@ -892,7 +892,6 @@ static inline int pid_alive(struct task_struct *p) } extern void free_task(struct task_struct *tsk); -extern void __put_task_struct(struct task_struct *tsk); #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) extern void __put_task_struct_cb(struct rcu_head *rhp); diff --git a/trunk/kernel/fork.c b/trunk/kernel/fork.c index fbea12d7a943..a8eab86de7f1 100644 --- a/trunk/kernel/fork.c +++ b/trunk/kernel/fork.c @@ -108,8 +108,10 @@ void free_task(struct task_struct *tsk) } EXPORT_SYMBOL(free_task); -void __put_task_struct(struct task_struct *tsk) +void __put_task_struct_cb(struct rcu_head *rhp) { + struct task_struct *tsk = container_of(rhp, struct task_struct, rcu); + WARN_ON(!(tsk->exit_state & (EXIT_DEAD | EXIT_ZOMBIE))); WARN_ON(atomic_read(&tsk->usage)); WARN_ON(tsk == current); diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index e82c99f1db64..4d46e90f59c3 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -178,13 +178,6 @@ static unsigned int task_timeslice(task_t *p) #define task_hot(p, now, sd) ((long long) ((now) - (p)->last_ran) \ < (long long) (sd)->cache_hot_time) -void __put_task_struct_cb(struct rcu_head *rhp) -{ - __put_task_struct(container_of(rhp, struct task_struct, rcu)); -} - -EXPORT_SYMBOL_GPL(__put_task_struct_cb); - /* * These are the runqueue data structures: */