When the trc_wait waitqueue timeout, the atomic variable trc_n_readers_need_end need to be checked again, perhaps the conditions have been established at this time, avoid invalid stall information output. Signed-off-by: Zqiang <qiang1.zhang@xxxxxxxxx> --- kernel/rcu/tasks.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index 65d6e21a607a..b73a2b362d6b 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1544,7 +1544,7 @@ static void rcu_tasks_trace_postgp(struct rcu_tasks *rtp) trc_wait, atomic_read(&trc_n_readers_need_end) == 0, READ_ONCE(rcu_task_stall_timeout)); - if (ret) + if (ret || !atomic_read(&trc_n_readers_need_end)) break; // Count reached zero. // Stall warning time, so make a list of the offenders. rcu_read_lock(); -- 2.25.1