* [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow
@ 2025-07-10 13:08 Rafael J. Wysocki
2025-07-10 13:10 ` [PATCH v1 1/2] kexec_core: Fix error code path in " Rafael J. Wysocki
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Rafael J. Wysocki @ 2025-07-10 13:08 UTC (permalink / raw)
To: kexec
Cc: LKML, Linux PM, Andrew Morton, Baoquan He, Mario Limonciello,
David Woodhouse
Hi Everyone,
These two patches fix an error code path issue in the KEXEC_JUMP flow (patch
[1/2]) and clean it up a bit afterward (patch [2/2]).
Please see patch changelogs for details.
Thanks!
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v1 1/2] kexec_core: Fix error code path in the KEXEC_JUMP flow
2025-07-10 13:08 [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Rafael J. Wysocki
@ 2025-07-10 13:10 ` Rafael J. Wysocki
2025-07-11 6:16 ` Baoquan He
2025-07-10 13:12 ` [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call Rafael J. Wysocki
2025-07-11 11:15 ` [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Mario Limonciello
2 siblings, 1 reply; 7+ messages in thread
From: Rafael J. Wysocki @ 2025-07-10 13:10 UTC (permalink / raw)
To: kexec
Cc: LKML, Linux PM, Andrew Morton, Baoquan He, Mario Limonciello,
David Woodhouse
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
If dpm_suspend_start() fails, dpm_resume_end() must be called to
recover devices whose suspend callbacks have been called, but this
does not happen in the KEXEC_JUMP flow's error path due to a confused
goto target label.
Address this by using the correct target label in the goto statement in
question.
Fixes: 2965faa5e03d ("kexec: split kexec_load syscall from kexec core code")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
kernel/kexec_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -1080,7 +1080,7 @@
console_suspend_all();
error = dpm_suspend_start(PMSG_FREEZE);
if (error)
- goto Resume_console;
+ goto Resume_devices;
/*
* dpm_suspend_end() must be called after dpm_suspend_start()
* to complete the transition, like in the hibernation flows
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call
2025-07-10 13:08 [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Rafael J. Wysocki
2025-07-10 13:10 ` [PATCH v1 1/2] kexec_core: Fix error code path in " Rafael J. Wysocki
@ 2025-07-10 13:12 ` Rafael J. Wysocki
2025-07-11 6:17 ` Baoquan He
2025-07-11 11:15 ` [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Mario Limonciello
2 siblings, 1 reply; 7+ messages in thread
From: Rafael J. Wysocki @ 2025-07-10 13:12 UTC (permalink / raw)
To: kexec
Cc: LKML, Linux PM, Andrew Morton, Baoquan He, Mario Limonciello,
David Woodhouse
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Drop the direct pm_restore_gfp_mask() call from the KEXEC_JUMP flow in
kernel_kexec() because it is redundant. Namely, dpm_resume_end()
called beforehand in the same code path invokes that function and
it is sufficient to invoke it once.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
kernel/kexec_core.c | 1 -
1 file changed, 1 deletion(-)
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -1136,7 +1136,6 @@
Resume_devices:
dpm_resume_end(PMSG_RESTORE);
Resume_console:
- pm_restore_gfp_mask();
console_resume_all();
thaw_processes();
Restore_console:
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 1/2] kexec_core: Fix error code path in the KEXEC_JUMP flow
2025-07-10 13:10 ` [PATCH v1 1/2] kexec_core: Fix error code path in " Rafael J. Wysocki
@ 2025-07-11 6:16 ` Baoquan He
2025-07-11 9:29 ` Rafael J. Wysocki
0 siblings, 1 reply; 7+ messages in thread
From: Baoquan He @ 2025-07-11 6:16 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: kexec, LKML, Linux PM, Andrew Morton, Mario Limonciello,
David Woodhouse
On 07/10/25 at 03:10pm, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> If dpm_suspend_start() fails, dpm_resume_end() must be called to
> recover devices whose suspend callbacks have been called, but this
> does not happen in the KEXEC_JUMP flow's error path due to a confused
> goto target label.
>
> Address this by using the correct target label in the goto statement in
> question.
Sounds very reasonable, thanks for the fix.
Acked-by: Baoquan He <bhe@redhat.com>
>
> Fixes: 2965faa5e03d ("kexec: split kexec_load syscall from kexec core code")
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> kernel/kexec_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/kernel/kexec_core.c
> +++ b/kernel/kexec_core.c
> @@ -1080,7 +1080,7 @@
> console_suspend_all();
> error = dpm_suspend_start(PMSG_FREEZE);
> if (error)
> - goto Resume_console;
> + goto Resume_devices;
> /*
> * dpm_suspend_end() must be called after dpm_suspend_start()
> * to complete the transition, like in the hibernation flows
>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call
2025-07-10 13:12 ` [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call Rafael J. Wysocki
@ 2025-07-11 6:17 ` Baoquan He
0 siblings, 0 replies; 7+ messages in thread
From: Baoquan He @ 2025-07-11 6:17 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: kexec, LKML, Linux PM, Andrew Morton, Mario Limonciello,
David Woodhouse
On 07/10/25 at 03:12pm, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Drop the direct pm_restore_gfp_mask() call from the KEXEC_JUMP flow in
> kernel_kexec() because it is redundant. Namely, dpm_resume_end()
> called beforehand in the same code path invokes that function and
> it is sufficient to invoke it once.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> kernel/kexec_core.c | 1 -
> 1 file changed, 1 deletion(-)
LGTM,
Acked-by: Baoquan He <bhe@redhat.com>
>
> --- a/kernel/kexec_core.c
> +++ b/kernel/kexec_core.c
> @@ -1136,7 +1136,6 @@
> Resume_devices:
> dpm_resume_end(PMSG_RESTORE);
> Resume_console:
> - pm_restore_gfp_mask();
> console_resume_all();
> thaw_processes();
> Restore_console:
>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 1/2] kexec_core: Fix error code path in the KEXEC_JUMP flow
2025-07-11 6:16 ` Baoquan He
@ 2025-07-11 9:29 ` Rafael J. Wysocki
0 siblings, 0 replies; 7+ messages in thread
From: Rafael J. Wysocki @ 2025-07-11 9:29 UTC (permalink / raw)
To: Baoquan He
Cc: Rafael J. Wysocki, kexec, LKML, Linux PM, Andrew Morton,
Mario Limonciello, David Woodhouse
On Fri, Jul 11, 2025 at 8:16 AM Baoquan He <bhe@redhat.com> wrote:
>
> On 07/10/25 at 03:10pm, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> >
> > If dpm_suspend_start() fails, dpm_resume_end() must be called to
> > recover devices whose suspend callbacks have been called, but this
> > does not happen in the KEXEC_JUMP flow's error path due to a confused
> > goto target label.
> >
> > Address this by using the correct target label in the goto statement in
> > question.
>
> Sounds very reasonable, thanks for the fix.
>
> Acked-by: Baoquan He <bhe@redhat.com>
Thanks!
I've queued it up for 6.17 along with the [2/2].
> >
> > Fixes: 2965faa5e03d ("kexec: split kexec_load syscall from kexec core code")
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > ---
> > kernel/kexec_core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/kernel/kexec_core.c
> > +++ b/kernel/kexec_core.c
> > @@ -1080,7 +1080,7 @@
> > console_suspend_all();
> > error = dpm_suspend_start(PMSG_FREEZE);
> > if (error)
> > - goto Resume_console;
> > + goto Resume_devices;
> > /*
> > * dpm_suspend_end() must be called after dpm_suspend_start()
> > * to complete the transition, like in the hibernation flows
> >
> >
> >
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow
2025-07-10 13:08 [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Rafael J. Wysocki
2025-07-10 13:10 ` [PATCH v1 1/2] kexec_core: Fix error code path in " Rafael J. Wysocki
2025-07-10 13:12 ` [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call Rafael J. Wysocki
@ 2025-07-11 11:15 ` Mario Limonciello
2 siblings, 0 replies; 7+ messages in thread
From: Mario Limonciello @ 2025-07-11 11:15 UTC (permalink / raw)
To: Rafael J. Wysocki, kexec
Cc: LKML, Linux PM, Andrew Morton, Baoquan He, David Woodhouse
On 7/10/2025 9:08 AM, Rafael J. Wysocki wrote:
> Hi Everyone,
>
> These two patches fix an error code path issue in the KEXEC_JUMP flow (patch
> [1/2]) and clean it up a bit afterward (patch [2/2]).
>
> Please see patch changelogs for details.
>
> Thanks!
>
>
>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-07-11 11:39 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-10 13:08 [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Rafael J. Wysocki
2025-07-10 13:10 ` [PATCH v1 1/2] kexec_core: Fix error code path in " Rafael J. Wysocki
2025-07-11 6:16 ` Baoquan He
2025-07-11 9:29 ` Rafael J. Wysocki
2025-07-10 13:12 ` [PATCH v1 2/2] kexec_core: Drop redundant pm_restore_gfp_mask() call Rafael J. Wysocki
2025-07-11 6:17 ` Baoquan He
2025-07-11 11:15 ` [PATCH v1 0/2] kexec_core: Fix and cleanup for the KEXEC_JUMP flow Mario Limonciello
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.