kernel/power/suspend.c | 1 - 1 file changed, 1 deletion(-)
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
The pm_restore_gfp_mask() call added by commit 12ffc3b1513e ("PM:
Restrict swap use to later in the suspend sequence") to
suspend_devices_and_enter() is done too early because it takes
place before calling dpm_resume() in dpm_resume_end() and some
swap-backing devices may not be ready at that point. Moreover, it
is not even necessary because dpm_resume_end() called subsequently
in the same code path invokes that function again.
Drop the misplaced pm_restore_gfp_mask() call from
suspend_devices_and_enter() to address this issue.
Fixes: 12ffc3b1513e ("PM: Restrict swap use to later in the suspend sequence")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
kernel/power/suspend.c | 1 -
1 file changed, 1 deletion(-)
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -540,7 +540,6 @@
return error;
Recover_platform:
- pm_restore_gfp_mask();
platform_recover(state);
goto Resume_devices;
}
On 7/10/2025 3:43 AM, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> The pm_restore_gfp_mask() call added by commit 12ffc3b1513e ("PM:
> Restrict swap use to later in the suspend sequence") to
> suspend_devices_and_enter() is done too early because it takes
> place before calling dpm_resume() in dpm_resume_end() and some
> swap-backing devices may not be ready at that point. Moreover, it
> is not even necessary because dpm_resume_end() called subsequently
> in the same code path invokes that function again.
>
> Drop the misplaced pm_restore_gfp_mask() call from
> suspend_devices_and_enter() to address this issue.
>
> Fixes: 12ffc3b1513e ("PM: Restrict swap use to later in the suspend sequence")
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> kernel/power/suspend.c | 1 -
> 1 file changed, 1 deletion(-)
>
> --- a/kernel/power/suspend.c
> +++ b/kernel/power/suspend.c
> @@ -540,7 +540,6 @@
> return error;
>
> Recover_platform:
> - pm_restore_gfp_mask();
> platform_recover(state);
> goto Resume_devices;
> }
>
>
>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
© 2016 - 2026 Red Hat, Inc.