From: Peter Zijlstra Date: Mon, 22 Sep 2025 13:46:27 +0000 (+0200) Subject: unwind: Add comment to unwind_deferred_task_exit() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ae577ea0bc5249c483da09670f784dbc288c80b6;p=thirdparty%2Fkernel%2Flinux.git unwind: Add comment to unwind_deferred_task_exit() Explain why unwind_deferred_task_exit() exist and its constraints. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Steven Rostedt (Google) Link: https://patch.msgid.link/20250924080118.893367437@infradead.org --- diff --git a/kernel/exit.c b/kernel/exit.c index 9f74e8f1c431b..5f6e78e28e8a7 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -939,7 +939,6 @@ void __noreturn do_exit(long code) tsk->exit_code = code; taskstats_exit(tsk, group_dead); - unwind_deferred_task_exit(tsk); trace_sched_process_exit(tsk, group_dead); /* @@ -950,6 +949,12 @@ void __noreturn do_exit(long code) * gets woken up by child-exit notifications. */ perf_event_exit_task(tsk); + /* + * PF_EXITING (above) ensures unwind_deferred_request() will no + * longer add new unwinds. While exit_mm() (below) will destroy the + * abaility to do unwinds. So flush any pending unwinds here. + */ + unwind_deferred_task_exit(tsk); exit_mm();