utrace_tracer_task() can use list_for_each_entry() too. Signed-off-by: Oleg Nesterov <o...@redhat.com>
--- xxx/kernel/utrace.c~TRACER_TASK 2009-03-12 01:18:38.000000000 +0100 +++ xxx/kernel/utrace.c 2009-03-12 01:21:05.000000000 +0100 @@ -2317,15 +2317,12 @@ EXPORT_SYMBOL_GPL(task_user_regset_view) */ struct task_struct *utrace_tracer_task(struct task_struct *target) { - struct list_head *pos, *next; struct utrace_engine *engine; const struct utrace_engine_ops *ops; struct task_struct *tracer = NULL; struct utrace *utrace = task_utrace_struct(target); - list_for_each_safe(pos, next, &utrace->attached) { - engine = list_entry(pos, struct utrace_engine, - entry); + list_for_each_entry(engine, &utrace->attached, entry) { ops = rcu_dereference(engine->ops); if (ops->tracer_task) { tracer = (*ops->tracer_task)(engine, target);