[PATCH v1] Revert "PM: sleep: Make pm_wakeup_clear() call more clear"

Samuel Wu posted 1 patch 3 months, 2 weeks ago
kernel/power/process.c | 1 +
kernel/power/suspend.c | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
[PATCH v1] Revert "PM: sleep: Make pm_wakeup_clear() call more clear"
Posted by Samuel Wu 3 months, 2 weeks ago
This reverts commit 56a232d93cea0ba14da5e3157830330756a45b4c.

The original patch changes the position of pm_wakeup_clear() for the
suspend call path, but other call paths with references to
freeze_processes() were not updated. This means that other call paths,
such as hibernate(), will not have pm_wakeup_clear() called.

Suggested-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Samuel Wu <wusamuel@google.com>
---
 kernel/power/process.c | 1 +
 kernel/power/suspend.c | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/power/process.c b/kernel/power/process.c
index 8ff68ebaa1e0..dc0dfc349f22 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -132,6 +132,7 @@ int freeze_processes(void)
 	if (!pm_freezing)
 		static_branch_inc(&freezer_active);
 
+	pm_wakeup_clear(0);
 	pm_freezing = true;
 	error = try_to_freeze_tasks(true);
 	if (!error)
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 4bb4686c1c08..b4ca17c2fecf 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -595,7 +595,6 @@ static int enter_state(suspend_state_t state)
 	}
 
 	pm_pr_dbg("Preparing system for sleep (%s)\n", mem_sleep_labels[state]);
-	pm_wakeup_clear(0);
 	pm_suspend_clear_flags();
 	error = suspend_prepare(state);
 	if (error)
-- 
2.51.1.814.gb8fa24458f-goog
Re: [PATCH v1] Revert "PM: sleep: Make pm_wakeup_clear() call more clear"
Posted by Rafael J. Wysocki 3 months, 2 weeks ago
On Thu, Oct 23, 2025 at 12:29 AM Samuel Wu <wusamuel@google.com> wrote:
>
> This reverts commit 56a232d93cea0ba14da5e3157830330756a45b4c.
>
> The original patch changes the position of pm_wakeup_clear() for the
> suspend call path, but other call paths with references to
> freeze_processes() were not updated. This means that other call paths,
> such as hibernate(), will not have pm_wakeup_clear() called.
>
> Suggested-by: Saravana Kannan <saravanak@google.com>
> Signed-off-by: Samuel Wu <wusamuel@google.com>
> ---
>  kernel/power/process.c | 1 +
>  kernel/power/suspend.c | 1 -
>  2 files changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/power/process.c b/kernel/power/process.c
> index 8ff68ebaa1e0..dc0dfc349f22 100644
> --- a/kernel/power/process.c
> +++ b/kernel/power/process.c
> @@ -132,6 +132,7 @@ int freeze_processes(void)
>         if (!pm_freezing)
>                 static_branch_inc(&freezer_active);
>
> +       pm_wakeup_clear(0);
>         pm_freezing = true;
>         error = try_to_freeze_tasks(true);
>         if (!error)
> diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
> index 4bb4686c1c08..b4ca17c2fecf 100644
> --- a/kernel/power/suspend.c
> +++ b/kernel/power/suspend.c
> @@ -595,7 +595,6 @@ static int enter_state(suspend_state_t state)
>         }
>
>         pm_pr_dbg("Preparing system for sleep (%s)\n", mem_sleep_labels[state]);
> -       pm_wakeup_clear(0);
>         pm_suspend_clear_flags();
>         error = suspend_prepare(state);
>         if (error)
> --

Applied as 6.18-rc material, thanks!