[PATCH v2 0/2] rust: task: clean up safety issues wrt de_thread()

From: Jann Horn

Date: Thu Feb 12 2026 - 17:12:22 EST


Task::pid() and Task::group_leader() wrongly assume that task::pid and
task::group_leader remain constant until the task refcount drops to zero,
but those members can actually change due to concurrent de_thread().
Fix those assumptions.

Signed-off-by: Jann Horn <jannh@xxxxxxxxxx>
---
Changes in v2:
- split into two patches (Boqun)
- use relaxed atomic load instead of volatile load (Boqun)
- Link to v1: https://lore.kernel.org/r/20260212-rust-de_thread-v1-1-948f5b992624@xxxxxxxxxx

---
Jann Horn (2):
rust: task: limit group_leader() to current
rust: task: use atomic read for pid()

rust/kernel/task.rs | 38 ++++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 16 deletions(-)
---
base-commit: 192c0159402e6bfbe13de6f8379546943297783d
change-id: 20260212-rust-de_thread-0ad9154aedb0

--
Jann Horn <jannh@xxxxxxxxxx>