include/linux/suspend.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
From: Rafael J. Wysocki <rafael.j.wysocki@intel.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@kernelci.org>
Closes: https://groups.io/g/kernelci-results/topic/regression_pm_testing/115439919 [1]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
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
On 9/26/25 6:10 AM, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.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@kernelci.org> > Closes: https://groups.io/g/kernelci-results/topic/regression_pm_testing/115439919 [1] > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.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 > > >
© 2016 - 2025 Red Hat, Inc.