summaryrefslogtreecommitdiffstats
path: root/core/opal.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-03-16 20:15:17 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2018-03-22 10:12:41 -0700
commit1f53f9fa766f0e8ccf4ce59821c541dba268340b (patch)
treec1769b99891cdc3f51f8904a51ffe15dda55aa38 /core/opal.c
parent82fd5d06beee81b7f219937f3ed311c42b1eb3d8 (diff)
downloadtalos-skiboot-1f53f9fa766f0e8ccf4ce59821c541dba268340b.tar.gz
talos-skiboot-1f53f9fa766f0e8ccf4ce59821c541dba268340b.zip
core/fast-reboot: disable fast reboot upon fundamental entry/exit/locking errors
This disables fast reboot in several more cases where serious errors like lock corruption or call re-entrancy are detected. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/opal.c')
-rw-r--r--core/opal.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/opal.c b/core/opal.c
index 38f9d724..e57f0a18 100644
--- a/core/opal.c
+++ b/core/opal.c
@@ -143,6 +143,7 @@ int64_t opal_entry_check(struct stack_frame *eframe)
return opal_bad_token(token);
if (!opal_quiesce_state && cpu->in_opal_call) {
+ disable_fast_reboot("Kernel re-entered OPAL");
switch (token) {
case OPAL_CONSOLE_READ:
case OPAL_CONSOLE_WRITE:
@@ -192,6 +193,7 @@ int64_t opal_exit_check(int64_t retval, struct stack_frame *eframe)
uint64_t token = eframe->gpr[0];
if (!cpu->in_opal_call) {
+ disable_fast_reboot("Un-accounted firmware entry");
printf("CPU UN-ACCOUNTED FIRMWARE ENTRY! PIR=%04lx cpu @%p -> pir=%04x token=%llu retval=%lld\n",
mfspr(SPR_PIR), cpu, cpu->pir, token, retval);
} else {
OpenPOWER on IntegriCloud