Tasks marked with PF_SUSPEND_TASK are involved in system suspend or
hibernate operations. These tasks must not be frozen, as they are
responsible for coordinating or executing parts of the suspend/resume
sequence.
This patch explicitly sets their freeze_priority to FREEZE_PRIORITY_NEVER
during initialization. This makes their exemption from the freezer logic
clear in the new freeze-priority model and avoids redundant evaluations
during process traversal.
Signed-off-by: Zihuan Zhang <redacted>
---
kernel/power/process.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 06eafdb32abb..21bbca7040cf 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -147,6 +147,7 @@ int freeze_processes(void)
pm_wakeup_clear(0);
pm_freezing = true;
+ freeze_set_default_priority(current, FREEZE_PRIORITY_NEVER);
error = try_to_freeze_tasks(true);
if (!error)
__usermodehelper_set_disable_depth(UMH_DISABLED);
@@ -218,6 +219,7 @@ void thaw_processes(void)
WARN_ON(!(curr->flags & PF_SUSPEND_TASK));
curr->flags &= ~PF_SUSPEND_TASK;
+ freeze_set_default_priority(current, FREEZE_PRIORITY_NORMAL);
usermodehelper_enable();
schedule();
--
2.25.1