[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a1a6170e-2d91-4678-9147-6cb3fe534c93@kernel.org>
Date: Fri, 26 Sep 2025 09:12:37 -0500
From: Mario Limonciello <superm1@...nel.org>
To: "Rafael J. Wysocki" <rafael@...nel.org>,
Linux PM <linux-pm@...r.kernel.org>
Cc: LKML <linux-kernel@...r.kernel.org>, Ionut Nechita
<ionut_n2001@...oo.com>, Alex Deucher <alexander.deucher@....com>,
Kenneth Crudup <kenny@...ix.com>, amd-gfx@...ts.freedesktop.org
Subject: Re: [PATCH v1] PM: hibernate: Fix pm_hibernation_mode_is_suspend()
build breakage
On 9/26/25 6:10 AM, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
>
> Commit 495c8d35035e ("PM: hibernate: Add pm_hibernation_mode_is_suspend()")
> that introduced pm_hibernation_mode_is_suspend() did not define it in
> the case when CONFIG_HIBERNATION is unset, but CONFIG_SUSPEND is set.
>
> Subsequent commit 0a6e9e098fcc ("drm/amd: Fix hybrid sleep") made the
> amdgpu driver use that function which led to kernel build breakage in
> the case mentioned above [1].
>
> Address this by using appropriate #ifdeffery aroung the definition of
> pm_hibernation_mode_is_suspend().
>
> Fixes: 0a6e9e098fcc ("drm/amd: Fix hybrid sleep")
> Reported-by: KernelCI bot <bot@...nelci.org>
> Closes: https://groups.io/g/kernelci-results/topic/regression_pm_testing/115439919 [1]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
Reviewed-by: Mario Limonciello (AMD) <superm1@...nel.org>> ---
> include/linux/suspend.h | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> --- a/include/linux/suspend.h
> +++ b/include/linux/suspend.h
> @@ -276,7 +276,6 @@ extern void arch_suspend_enable_irqs(voi
>
> extern int pm_suspend(suspend_state_t state);
> extern bool sync_on_suspend_enabled;
> -bool pm_hibernation_mode_is_suspend(void);
> #else /* !CONFIG_SUSPEND */
> #define suspend_valid_only_mem NULL
>
> @@ -289,7 +288,6 @@ static inline bool pm_suspend_via_firmwa
> static inline bool pm_resume_via_firmware(void) { return false; }
> static inline bool pm_suspend_no_platform(void) { return false; }
> static inline bool pm_suspend_default_s2idle(void) { return false; }
> -static inline bool pm_hibernation_mode_is_suspend(void) { return false; }
>
> static inline void suspend_set_ops(const struct platform_suspend_ops *ops) {}
> static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
> @@ -420,6 +418,12 @@ static inline int hibernate_quiet_exec(i
> }
> #endif /* CONFIG_HIBERNATION */
>
> +#if defined(CONFIG_HIBERNATION) && defined(CONFIG_SUSPEND)
> +bool pm_hibernation_mode_is_suspend(void);
> +#else
> +static inline bool pm_hibernation_mode_is_suspend(void) { return false; }
> +#endif
> +
> int arch_resume_nosmt(void);
>
> #ifdef CONFIG_HIBERNATION_SNAPSHOT_DEV
>
>
>
Powered by blists - more mailing lists