提交 99745b6a 编写于 作者: P Paul E. McKenney 提交者: Paul E. McKenney

rcu: Make RCU use the new is_idle_task() API

Change from direct comparison of ->pid with zero to is_idle_task().
Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
上级 c4f30608
...@@ -64,7 +64,7 @@ static void rcu_idle_enter_common(long long oldval) ...@@ -64,7 +64,7 @@ static void rcu_idle_enter_common(long long oldval)
return; return;
} }
RCU_TRACE(trace_rcu_dyntick("Start", oldval, rcu_dynticks_nesting)); RCU_TRACE(trace_rcu_dyntick("Start", oldval, rcu_dynticks_nesting));
if (current->pid != 0) { if (!is_idle_task(current)) {
struct task_struct *idle = idle_task(smp_processor_id()); struct task_struct *idle = idle_task(smp_processor_id());
RCU_TRACE(trace_rcu_dyntick("Error on entry: not idle task", RCU_TRACE(trace_rcu_dyntick("Error on entry: not idle task",
...@@ -118,7 +118,7 @@ static void rcu_idle_exit_common(long long oldval) ...@@ -118,7 +118,7 @@ static void rcu_idle_exit_common(long long oldval)
return; return;
} }
RCU_TRACE(trace_rcu_dyntick("End", oldval, rcu_dynticks_nesting)); RCU_TRACE(trace_rcu_dyntick("End", oldval, rcu_dynticks_nesting));
if (current->pid != 0) { if (!is_idle_task(current)) {
struct task_struct *idle = idle_task(smp_processor_id()); struct task_struct *idle = idle_task(smp_processor_id());
RCU_TRACE(trace_rcu_dyntick("Error on exit: not idle task", RCU_TRACE(trace_rcu_dyntick("Error on exit: not idle task",
......
...@@ -355,7 +355,7 @@ static void rcu_idle_enter_common(struct rcu_dynticks *rdtp, long long oldval) ...@@ -355,7 +355,7 @@ static void rcu_idle_enter_common(struct rcu_dynticks *rdtp, long long oldval)
return; return;
} }
trace_rcu_dyntick("Start", oldval, rdtp->dynticks_nesting); trace_rcu_dyntick("Start", oldval, rdtp->dynticks_nesting);
if (current->pid != 0) { if (!is_idle_task(current)) {
struct task_struct *idle = idle_task(smp_processor_id()); struct task_struct *idle = idle_task(smp_processor_id());
trace_rcu_dyntick("Error on entry: not idle task", trace_rcu_dyntick("Error on entry: not idle task",
...@@ -449,7 +449,7 @@ static void rcu_idle_exit_common(struct rcu_dynticks *rdtp, long long oldval) ...@@ -449,7 +449,7 @@ static void rcu_idle_exit_common(struct rcu_dynticks *rdtp, long long oldval)
smp_mb__after_atomic_inc(); /* See above. */ smp_mb__after_atomic_inc(); /* See above. */
WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1)); WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
trace_rcu_dyntick("End", oldval, rdtp->dynticks_nesting); trace_rcu_dyntick("End", oldval, rdtp->dynticks_nesting);
if (current->pid != 0) { if (!is_idle_task(current)) {
struct task_struct *idle = idle_task(smp_processor_id()); struct task_struct *idle = idle_task(smp_processor_id());
trace_rcu_dyntick("Error on exit: not idle task", trace_rcu_dyntick("Error on exit: not idle task",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册