[Skiboot] [PATCH] core/platform: Fallback to full_reboot if fast-reboot fails

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Tue Nov 24 18:16:21 AEDT 2020


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 at gmail.com>
Cc: Michael Ellerman <mpe at ellerman.id.au>
Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
---
 core/platform.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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



More information about the Skiboot mailing list