summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2023-12-10 11:09:16 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2023-12-10 11:09:16 -0800
commit3a87498869d6d1e7347cd01f337a77984604eb5e (patch)
tree37b338bbacdf4d26bd5ddc82e0c93e1d1b1e4b85
parent537ccb5d28d6f398215e7f578e46ee7836f5ac47 (diff)
parent23ab79e8e469e2605beec2e3ccb40d19c68dd2e0 (diff)
downloadlinux-3a87498869d6d1e7347cd01f337a77984604eb5e.tar.gz
linux-3a87498869d6d1e7347cd01f337a77984604eb5e.tar.bz2
linux-3a87498869d6d1e7347cd01f337a77984604eb5e.zip
Merge tag 'sched_urgent_for_v6.7_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Borislav Petkov: - Make sure tasks are thawed exactly and only once to avoid their state getting corrupted * tag 'sched_urgent_for_v6.7_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: freezer,sched: Do not restore saved_state of a thawed task
-rw-r--r--kernel/freezer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/freezer.c b/kernel/freezer.c
index c450fa8b8b5e..759006a9a910 100644
--- a/kernel/freezer.c
+++ b/kernel/freezer.c
@@ -201,7 +201,7 @@ void __thaw_task(struct task_struct *p)
if (WARN_ON_ONCE(freezing(p)))
goto unlock;
- if (task_call_func(p, __restore_freezer_state, NULL))
+ if (!frozen(p) || task_call_func(p, __restore_freezer_state, NULL))
goto unlock;
wake_up_state(p, TASK_FROZEN);