Message ID | 20201124071621.199352-1-hegdevasant@linux.vnet.ibm.com |
---|---|
State | Accepted |
Headers | show |
Series | core/platform: Fallback to full_reboot if fast-reboot fails | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch master (89a32b4930be829f37e6967354a759e38048d01f) |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot | success | Test snowpatch/job/snowpatch-skiboot on branch master |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot-dco | success | Signed-off-by present |
Vasant Hegde <hegdevasant@linux.vnet.ibm.com> writes: > If fast reboot fails then we return to Linux with OPAL_SUCCESS. > Current Linux code thinks that request succedded and enters > infinite loop (see Linux pnv_restart() code). > > This patch fixes above issue by return OPAL_UNSUPPORTED if fast > reboot fails. > > Alternatively we can directly all full_reboot() itself. But I ^ call > think it makes sense to go back to Linux and report the failure. > And Linux falls back to normal reboot request. > > Fixes: 10bbcd07 ("core/platform: Add an explicit fast-reboot type") > Cc: Oliver O'Halloran <oohall@gmail.com> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> > --- > core/platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Acked-by: Michael Ellerman <mpe@ellerman.id.au> cheers > diff --git a/core/platform.c b/core/platform.c > index 8f4a3b877..320fdea03 100644 > --- a/core/platform.c > +++ b/core/platform.c > @@ -124,7 +124,8 @@ static int64_t opal_cec_reboot2(uint32_t reboot_type, char *diag) > case OPAL_REBOOT_FAST: > prlog(PR_NOTICE, "Reboot: Fast reboot requested by OS\n"); > fast_reboot(); > - break; > + prlog(PR_NOTICE, "Reboot: Fast reboot failed\n"); > + return OPAL_UNSUPPORTED; > default: > prlog(PR_NOTICE, "OPAL: Unsupported reboot request %d\n", reboot_type); > return OPAL_UNSUPPORTED; > -- > 2.26.2
On Tue, 24 Nov 2020 12:46:21 +0530 Vasant Hegde <hegdevasant@linux.vnet.ibm.com> wrote: > If fast reboot fails then we return to Linux with OPAL_SUCCESS. > Current Linux code thinks that request succedded and enters > infinite loop (see Linux pnv_restart() code). > > This patch fixes above issue by return OPAL_UNSUPPORTED if fast > reboot fails. > > Alternatively we can directly all full_reboot() itself. But I > think it makes sense to go back to Linux and report the failure. > And Linux falls back to normal reboot request. > > Fixes: 10bbcd07 ("core/platform: Add an explicit fast-reboot type") > Cc: Oliver O'Halloran <oohall@gmail.com> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> > --- > core/platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) LGTM Reviewed-by: Dan Horák <dan@danny.cz> Dan > diff --git a/core/platform.c b/core/platform.c > index 8f4a3b877..320fdea03 100644 > --- a/core/platform.c > +++ b/core/platform.c > @@ -124,7 +124,8 @@ static int64_t opal_cec_reboot2(uint32_t reboot_type, char *diag) > case OPAL_REBOOT_FAST: > prlog(PR_NOTICE, "Reboot: Fast reboot requested by OS\n"); > fast_reboot(); > - break; > + prlog(PR_NOTICE, "Reboot: Fast reboot failed\n"); > + return OPAL_UNSUPPORTED; > default: > prlog(PR_NOTICE, "OPAL: Unsupported reboot request %d\n", reboot_type); > return OPAL_UNSUPPORTED; > -- > 2.26.2 > > _______________________________________________ > Skiboot mailing list > Skiboot@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/skiboot
On 11/24/20 12:46 PM, Vasant Hegde wrote: > If fast reboot fails then we return to Linux with OPAL_SUCCESS. > Current Linux code thinks that request succedded and enters > infinite loop (see Linux pnv_restart() code). > > This patch fixes above issue by return OPAL_UNSUPPORTED if fast > reboot fails. > > Alternatively we can directly all full_reboot() itself. But I > think it makes sense to go back to Linux and report the failure. > And Linux falls back to normal reboot request. > Merged as 8256da31. -Vasant
diff --git a/core/platform.c b/core/platform.c index 8f4a3b877..320fdea03 100644 --- a/core/platform.c +++ b/core/platform.c @@ -124,7 +124,8 @@ static int64_t opal_cec_reboot2(uint32_t reboot_type, char *diag) case OPAL_REBOOT_FAST: prlog(PR_NOTICE, "Reboot: Fast reboot requested by OS\n"); fast_reboot(); - break; + prlog(PR_NOTICE, "Reboot: Fast reboot failed\n"); + return OPAL_UNSUPPORTED; default: prlog(PR_NOTICE, "OPAL: Unsupported reboot request %d\n", reboot_type); return OPAL_UNSUPPORTED;
If fast reboot fails then we return to Linux with OPAL_SUCCESS. Current Linux code thinks that request succedded and enters infinite loop (see Linux pnv_restart() code). This patch fixes above issue by return OPAL_UNSUPPORTED if fast reboot fails. Alternatively we can directly all full_reboot() itself. But I think it makes sense to go back to Linux and report the failure. And Linux falls back to normal reboot request. Fixes: 10bbcd07 ("core/platform: Add an explicit fast-reboot type") Cc: Oliver O'Halloran <oohall@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> --- core/platform.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)