On 07/29/2014 06:56 AM, Paul E. McKenney wrote: > + /* > + * Each pass through the following loop scans the list > + * of holdout tasks, removing any that are no longer > + * holdouts. When the list is empty, we are done. > + */ > + while (!list_empty(&rcu_tasks_holdouts)) { > + schedule_timeout_interruptible(HZ / 10); > + flush_signals(current); > + rcu_read_lock(); > + list_for_each_entry_rcu(t, &rcu_tasks_holdouts, > + rcu_tasks_holdout_list) { > + if (smp_load_acquire(&t->rcu_tasks_holdout)) > + continue; > + list_del_init(&t->rcu_tasks_holdout_list); > + /* @@@ need to check for usermode on CPU. */ > + } > + rcu_read_unlock();
Maybe I missed something. The task @t may already exited and we access to the stale memory here if without patch 8/9. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/