freezer,sched: Clean saved_state when restoring it during thaw
authorElliot Berman <quic_eberman@quicinc.com>
Mon, 20 Nov 2023 17:36:32 +0000 (09:36 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 29 Nov 2023 14:43:53 +0000 (15:43 +0100)
Clean saved_state after using it during thaw. Cleaning the saved_state
allows us to avoid some unnecessary branches in ttwu_state_match.

Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20231120-freezer-state-multiple-thaws-v1-2-f2e1dd7ce5a2@quicinc.com
kernel/freezer.c

index c450fa8b8b5ef4472cac53a70d99975ccca82c01..43b1d1b94d9e69fbca09db60696088a8f6878afa 100644 (file)
@@ -187,6 +187,7 @@ static int __restore_freezer_state(struct task_struct *p, void *arg)
 
        if (state != TASK_RUNNING) {
                WRITE_ONCE(p->__state, state);
+               p->saved_state = TASK_RUNNING;
                return 1;
        }