* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree [not found] <2025102032-crescent-acuteness-5060 () gregkh> @ 2025-10-21 20:43 ` Pascal Ernster 2025-10-21 20:45 ` Mario Limonciello (AMD) (kernel.org) 0 siblings, 1 reply; 8+ messages in thread From: Pascal Ernster @ 2025-10-21 20:43 UTC (permalink / raw) To: Greg Kroah-Hartman, stable, Sasha Levin, Mario Limonciello [2025-10-20 10:36] gregkh linuxfoundation ! org: > This is a note to let you know that I've just added the patch titled > > PM: hibernate: Add pm_hibernation_mode_is_suspend() > > to the 6.17-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > pm-hibernate-add-pm_hibernation_mode_is_suspend.patch > and it can be found in the queue-6.17 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@vger.kernel.org> know about it. > > > From stable+bounces-187839-greg=kroah.com@vger.kernel.org Sat Oct 18 15:51:25 2025 > From: Sasha Levin <sashal@kernel.org> > Date: Sat, 18 Oct 2025 09:51:01 -0400 > Subject: PM: hibernate: Add pm_hibernation_mode_is_suspend() > To: stable@vger.kernel.org > Cc: "Mario Limonciello (AMD)" <superm1@kernel.org>, Ionut Nechita <ionut_n2001@yahoo.com>, Kenneth Crudup <kenny@panix.com>, Alex Deucher <alexander.deucher@amd.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Sasha Levin <sashal@kernel.org> > Message-ID: <20251018135102.711457-1-sashal@kernel.org> > > From: "Mario Limonciello (AMD)" <superm1@kernel.org> > > [ Upstream commit 495c8d35035edb66e3284113bef01f3b1b843832 ] > > Some drivers have different flows for hibernation and suspend. If > the driver opportunistically will skip thaw() then it needs a hint > to know what is happening after the hibernate. > > Introduce a new symbol pm_hibernation_mode_is_suspend() that drivers > can call to determine if suspending the system for this purpose. > > Tested-by: Ionut Nechita <ionut_n2001@yahoo.com> > Tested-by: Kenneth Crudup <kenny@panix.com> > Acked-by: Alex Deucher <alexander.deucher@amd.com> > Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Stable-dep-of: 0a6e9e098fcc ("drm/amd: Fix hybrid sleep") > Signed-off-by: Sasha Levin <sashal@kernel.org> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > include/linux/suspend.h | 2 ++ > kernel/power/hibernate.c | 11 +++++++++++ > 2 files changed, 13 insertions(+) > > --- a/include/linux/suspend.h > +++ b/include/linux/suspend.h > @@ -276,6 +276,7 @@ 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 > > @@ -288,6 +289,7 @@ 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; } > --- a/kernel/power/hibernate.c > +++ b/kernel/power/hibernate.c > @@ -80,6 +80,17 @@ static const struct platform_hibernation > > static atomic_t hibernate_atomic = ATOMIC_INIT(1); > > +#ifdef CONFIG_SUSPEND > +/** > + * pm_hibernation_mode_is_suspend - Check if hibernation has been set to suspend > + */ > +bool pm_hibernation_mode_is_suspend(void) > +{ > + return hibernation_mode == HIBERNATION_SUSPEND; > +} > +EXPORT_SYMBOL_GPL(pm_hibernation_mode_is_suspend); > +#endif > + > bool hibernate_acquire(void) > { > return atomic_add_unless(&hibernate_atomic, -1, 0); > > > Patches currently in stable-queue which might be from sashal@kernel.org are > > queue-6.17/drm-amd-fix-hybrid-sleep.patch > queue-6.17/usb-gadget-introduce-free_usb_request-helper.patch > queue-6.17/pm-hibernate-add-pm_hibernation_mode_is_suspend.patch > queue-6.17/usb-gadget-store-endpoint-pointer-in-usb_request.patch > queue-6.17/media-nxp-imx8-isi-m2m-fix-streaming-cleanup-on-release.patch > queue-6.17/usb-gadget-f_rndis-refactor-bind-path-to-use-__free.patch Hi, I kept getting "ERROR: modpost: "pm_hibernation_mode_is_suspend" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!" when trying to build a 6.17.4 kernel with all the patches from queue-6.17 applied on top (from the stable-queue git repo at commit id 6aceec507fd0d3cefa7cac227eaf897edf09bf32). That build-time error is gone and the resulting kernel boots/runs fine on various x86_64 machines and VMs since I've removed/omitted both this patch and queue-6.17/drm-amd-fix-hybrid-sleep.patch. I'm not sure if omitting queue-6.17/drm-amd-fix-hybrid-sleep.patch would have been sufficient, but both patches are part of the same patch set anyway. Sadly, I haven't been able to figure out what about the changes actually causes the issue. My first guess was that if CONFIG_SUSPEND is not selected/enabled, then the whole pm_hibernation_mode_is_suspend() function and the corresponding export symbol would be missing. However, the kernel that I was trying to build *does* have CONFIG_SUSPEND=y in its config, so this shouldn't be the cause… Regards Pascal ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 20:43 ` Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree Pascal Ernster @ 2025-10-21 20:45 ` Mario Limonciello (AMD) (kernel.org) 2025-10-21 21:08 ` Pascal Ernster 0 siblings, 1 reply; 8+ messages in thread From: Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 20:45 UTC (permalink / raw) To: Pascal Ernster, Greg Kroah-Hartman, stable, Sasha Levin On 10/21/2025 3:43 PM, Pascal Ernster wrote: > [2025-10-20 10:36] gregkh linuxfoundation ! org: >> This is a note to let you know that I've just added the patch titled >> >> PM: hibernate: Add pm_hibernation_mode_is_suspend() >> >> to the 6.17-stable tree which can be found at: >> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary >> >> The filename of the patch is: >> pm-hibernate-add-pm_hibernation_mode_is_suspend.patch >> and it can be found in the queue-6.17 subdirectory. >> >> If you, or anyone else, feels it should not be added to the stable tree, >> please let <stable@vger.kernel.org> know about it. >> >> >> From stable+bounces-187839-greg=kroah.com@vger.kernel.org Sat Oct 18 15:51:25 2025 >> From: Sasha Levin <sashal@kernel.org> >> Date: Sat, 18 Oct 2025 09:51:01 -0400 >> Subject: PM: hibernate: Add pm_hibernation_mode_is_suspend() >> To: stable@vger.kernel.org >> Cc: "Mario Limonciello (AMD)" <superm1@kernel.org>, Ionut Nechita <ionut_n2001@yahoo.com>, Kenneth Crudup <kenny@panix.com>, Alex Deucher <alexander.deucher@amd.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Sasha Levin <sashal@kernel.org> >> Message-ID: <20251018135102.711457-1-sashal@kernel.org> >> >> From: "Mario Limonciello (AMD)" <superm1@kernel.org> >> >> [ Upstream commit 495c8d35035edb66e3284113bef01f3b1b843832 ] >> >> Some drivers have different flows for hibernation and suspend. If >> the driver opportunistically will skip thaw() then it needs a hint >> to know what is happening after the hibernate. >> >> Introduce a new symbol pm_hibernation_mode_is_suspend() that drivers >> can call to determine if suspending the system for this purpose. >> >> Tested-by: Ionut Nechita <ionut_n2001@yahoo.com> >> Tested-by: Kenneth Crudup <kenny@panix.com> >> Acked-by: Alex Deucher <alexander.deucher@amd.com> >> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Stable-dep-of: 0a6e9e098fcc ("drm/amd: Fix hybrid sleep") >> Signed-off-by: Sasha Levin <sashal@kernel.org> >> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >> --- >> include/linux/suspend.h | 2 ++ >> kernel/power/hibernate.c | 11 +++++++++++ >> 2 files changed, 13 insertions(+) >> >> --- a/include/linux/suspend.h >> +++ b/include/linux/suspend.h >> @@ -276,6 +276,7 @@ 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 >> >> @@ -288,6 +289,7 @@ 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; } >> --- a/kernel/power/hibernate.c >> +++ b/kernel/power/hibernate.c >> @@ -80,6 +80,17 @@ static const struct platform_hibernation >> >> static atomic_t hibernate_atomic = ATOMIC_INIT(1); >> >> +#ifdef CONFIG_SUSPEND >> +/** >> + * pm_hibernation_mode_is_suspend - Check if hibernation has been set to suspend >> + */ >> +bool pm_hibernation_mode_is_suspend(void) >> +{ >> + return hibernation_mode == HIBERNATION_SUSPEND; >> +} >> +EXPORT_SYMBOL_GPL(pm_hibernation_mode_is_suspend); >> +#endif >> + >> bool hibernate_acquire(void) >> { >> return atomic_add_unless(&hibernate_atomic, -1, 0); >> >> >> Patches currently in stable-queue which might be from sashal@kernel.org are >> >> queue-6.17/drm-amd-fix-hybrid-sleep.patch >> queue-6.17/usb-gadget-introduce-free_usb_request-helper.patch >> queue-6.17/pm-hibernate-add-pm_hibernation_mode_is_suspend.patch >> queue-6.17/usb-gadget-store-endpoint-pointer-in-usb_request.patch >> queue-6.17/media-nxp-imx8-isi-m2m-fix-streaming-cleanup-on-release.patch >> queue-6.17/usb-gadget-f_rndis-refactor-bind-path-to-use-__free.patch > > > Hi, > > > I kept getting "ERROR: modpost: "pm_hibernation_mode_is_suspend" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!" when trying to build a 6.17.4 kernel with all the patches from queue-6.17 applied on top (from the stable-queue git repo at commit id 6aceec507fd0d3cefa7cac227eaf897edf09bf32). That build-time error is gone and the resulting kernel boots/runs fine on various x86_64 machines and VMs since I've removed/omitted both this patch and queue-6.17/drm-amd-fix-hybrid-sleep.patch. > > I'm not sure if omitting queue-6.17/drm-amd-fix-hybrid-sleep.patch would have been sufficient, but both patches are part of the same patch set anyway. > > Sadly, I haven't been able to figure out what about the changes actually causes the issue. My first guess was that if CONFIG_SUSPEND is not selected/enabled, then the whole pm_hibernation_mode_is_suspend() function and the corresponding export symbol would be missing. However, the kernel that I was trying to build *does* have CONFIG_SUSPEND=y in its config, so this shouldn't be the cause… > > > Regards > Pascal Are you cleaning your tree between builds? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 20:45 ` Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 21:08 ` Pascal Ernster 2025-10-21 21:19 ` Mario Limonciello (AMD) (kernel.org) 0 siblings, 1 reply; 8+ messages in thread From: Pascal Ernster @ 2025-10-21 21:08 UTC (permalink / raw) To: Mario Limonciello (AMD) (kernel.org), Greg Kroah-Hartman, stable, Sasha Levin [2025-10-21 22:45] Mario Limonciello (AMD) (kernel.org): > Are you cleaning your tree between builds? Yes. I'm building custom kernel packages in a clean chroot for my private package repo. The kernel config and the PKGBUILD can be found here: https://remotehost.online/linux-6.17.4/debug2/config https://remotehost.online/linux-6.17.4/debug2/PKGBUILD Here's a tarball that contains the PKGBUILD, the config, and all source files that I used: https://remotehost.online/linux-6.17.4/debug2/linux-hardened-6.17.4.hardened0-0.src.tar.zst Here's a log of stdout and stderr of the build process: https://remotehost.online/linux-6.17.4/debug2/stdout_stderr_combined.log Here's a fixed PKGBUILD that I used successfully to build my kernel packages: https://remotehost.online/linux-6.17.4/debug2/PKGBUILD.fixed The only difference is that I've commented out the two patches from your patch set, and removed the corresponding sha256 sums. Regards Pascal ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 21:08 ` Pascal Ernster @ 2025-10-21 21:19 ` Mario Limonciello (AMD) (kernel.org) 2025-10-21 21:34 ` Mario Limonciello (AMD) (kernel.org) 0 siblings, 1 reply; 8+ messages in thread From: Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 21:19 UTC (permalink / raw) To: Pascal Ernster, Greg Kroah-Hartman, stable, Sasha Levin On 10/21/2025 4:08 PM, Pascal Ernster wrote: > [2025-10-21 22:45] Mario Limonciello (AMD) (kernel.org): >> Are you cleaning your tree between builds? > > > Yes. > > I'm building custom kernel packages in a clean chroot for my private package repo. The kernel config and the PKGBUILD can be found here: > > https://remotehost.online/linux-6.17.4/debug2/config > https://remotehost.online/linux-6.17.4/debug2/PKGBUILD > > Here's a tarball that contains the PKGBUILD, the config, and all source files that I used: > > https://remotehost.online/linux-6.17.4/debug2/linux-hardened-6.17.4.hardened0-0.src.tar.zst > > Here's a log of stdout and stderr of the build process: > > https://remotehost.online/linux-6.17.4/debug2/stdout_stderr_combined.log > > > Here's a fixed PKGBUILD that I used successfully to build my kernel packages: > > https://remotehost.online/linux-6.17.4/debug2/PKGBUILD.fixed > > The only difference is that I've commented out the two patches from your patch set, and removed the corresponding sha256 sums. > > > Regards > Pascal It looks to me that you have CONFIG_HIBERNATE_CALLBACKS set but not CONFIG_HIBERNATION set. How does this happen? HIBERNATE_CALLBACKS is hidden, and it's only selected by CONFIG_HIBERNATE. The fix for now for you is to either turn off CONFIG_HIBERNATE_CALLBACKS or turn on CONFIG_HIBERNATION. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 21:19 ` Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 21:34 ` Mario Limonciello (AMD) (kernel.org) 2025-10-21 21:53 ` Pascal Ernster 0 siblings, 1 reply; 8+ messages in thread From: Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 21:34 UTC (permalink / raw) To: Pascal Ernster, Greg Kroah-Hartman, stable, Sasha Levin On 10/21/2025 4:19 PM, Mario Limonciello (AMD) (kernel.org) wrote: > > > On 10/21/2025 4:08 PM, Pascal Ernster wrote: >> [2025-10-21 22:45] Mario Limonciello (AMD) (kernel.org): >>> Are you cleaning your tree between builds? >> >> >> Yes. >> >> I'm building custom kernel packages in a clean chroot for my private >> package repo. The kernel config and the PKGBUILD can be found here: >> >> https://remotehost.online/linux-6.17.4/debug2/config >> https://remotehost.online/linux-6.17.4/debug2/PKGBUILD >> >> Here's a tarball that contains the PKGBUILD, the config, and all >> source files that I used: >> >> https://remotehost.online/linux-6.17.4/debug2/linux- >> hardened-6.17.4.hardened0-0.src.tar.zst >> >> Here's a log of stdout and stderr of the build process: >> >> https://remotehost.online/linux-6.17.4/debug2/stdout_stderr_combined.log >> >> >> Here's a fixed PKGBUILD that I used successfully to build my kernel >> packages: >> >> https://remotehost.online/linux-6.17.4/debug2/PKGBUILD.fixed >> >> The only difference is that I've commented out the two patches from >> your patch set, and removed the corresponding sha256 sums. >> >> >> Regards >> Pascal > > It looks to me that you have CONFIG_HIBERNATE_CALLBACKS set but not > CONFIG_HIBERNATION set. > > How does this happen? HIBERNATE_CALLBACKS is hidden, and it's only > selected by CONFIG_HIBERNATE. > > The fix for now for you is to either turn off CONFIG_HIBERNATE_CALLBACKS > or turn on CONFIG_HIBERNATION. Alternatively does picking https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbfe987c5a2854705393ad79813074e5eadcbde6 help your issue? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 21:34 ` Mario Limonciello (AMD) (kernel.org) @ 2025-10-21 21:53 ` Pascal Ernster 2025-10-22 3:52 ` Pascal Ernster 0 siblings, 1 reply; 8+ messages in thread From: Pascal Ernster @ 2025-10-21 21:53 UTC (permalink / raw) To: Mario Limonciello (AMD) (kernel.org), Greg Kroah-Hartman, stable, Sasha Levin [2025-10-21 23:34] Mario Limonciello (AMD) (kernel.org): > On 10/21/2025 4:19 PM, Mario Limonciello (AMD) (kernel.org) wrote: >> It looks to me that you have CONFIG_HIBERNATE_CALLBACKS set but not CONFIG_HIBERNATION set. >> >> How does this happen? HIBERNATE_CALLBACKS is hidden, and it's only selected by CONFIG_HIBERNATE. Excerpt from "make menuconfig": > │ Symbol: HIBERNATE_CALLBACKS [=y] > │ Type : bool > │ Defined at kernel/power/Kconfig:35 > │ Selected by [y]: > │ - XEN_SAVE_RESTORE [=y] && HYPERVISOR_GUEST [=y] && XEN [=y] > │ Selected by [n]: > │ - HIBERNATION [=n] && SWAP [=y] && ARCH_HIBERNATION_POSSIBLE [=y] >> The fix for now for you is to either turn off CONFIG_HIBERNATE_CALLBACKS or turn on CONFIG_HIBERNATION. > > Alternatively does picking https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbfe987c5a2854705393ad79813074e5eadcbde6 help your issue? Thanks for the hint! :) I'll give that patch a try, but compiling will take a while. Regards Pascal ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-21 21:53 ` Pascal Ernster @ 2025-10-22 3:52 ` Pascal Ernster 2025-10-22 5:30 ` Greg Kroah-Hartman 0 siblings, 1 reply; 8+ messages in thread From: Pascal Ernster @ 2025-10-22 3:52 UTC (permalink / raw) To: Mario Limonciello (AMD) (kernel.org), Greg Kroah-Hartman, stable, Sasha Levin [2025-10-21 23:34] Mario Limonciello (AMD) (kernel.org): > Alternatively does picking https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbfe987c5a2854705393ad79813074e5eadcbde6 help your issue? Thanks again, this patch does indeed fix the build issue for me :) Regards Pascal ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree 2025-10-22 3:52 ` Pascal Ernster @ 2025-10-22 5:30 ` Greg Kroah-Hartman 0 siblings, 0 replies; 8+ messages in thread From: Greg Kroah-Hartman @ 2025-10-22 5:30 UTC (permalink / raw) To: Pascal Ernster; +Cc: Mario Limonciello (AMD) (kernel.org), stable, Sasha Levin On Wed, Oct 22, 2025 at 05:52:17AM +0200, Pascal Ernster wrote: > [2025-10-21 23:34] Mario Limonciello (AMD) (kernel.org): > > Alternatively does picking https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbfe987c5a2854705393ad79813074e5eadcbde6 help your issue? > > Thanks again, this patch does indeed fix the build issue for me :) My fault, I should have noticed that this was required, now picked up, thanks! greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-10-22 5:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <2025102032-crescent-acuteness-5060 () gregkh>
2025-10-21 20:43 ` Patch "PM: hibernate: Add pm_hibernation_mode_is_suspend()" has been added to the 6.17-stable tree Pascal Ernster
2025-10-21 20:45 ` Mario Limonciello (AMD) (kernel.org)
2025-10-21 21:08 ` Pascal Ernster
2025-10-21 21:19 ` Mario Limonciello (AMD) (kernel.org)
2025-10-21 21:34 ` Mario Limonciello (AMD) (kernel.org)
2025-10-21 21:53 ` Pascal Ernster
2025-10-22 3:52 ` Pascal Ernster
2025-10-22 5:30 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox