summaryrefslogtreecommitdiffstats
path: root/hw/fsp/fsp-op-panel.c
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2016-11-18 14:58:28 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-11-24 16:47:16 +1100
commit9fcb109218b1374a8caa3cac62e83fbedb1f7f2f (patch)
treeb8197d92adc3ae7e13526df37ad0f3c0e8d93d14 /hw/fsp/fsp-op-panel.c
parent833b1e6bb2aef485226f8bc48ec1b45c422b2152 (diff)
downloadblackbird-skiboot-9fcb109218b1374a8caa3cac62e83fbedb1f7f2f.tar.gz
blackbird-skiboot-9fcb109218b1374a8caa3cac62e83fbedb1f7f2f.zip
fsp: Don't recurse pollers in ibm_fsp_terminate
If we were to terminate in a poller, we'd call op_display() which called pollers which hit the recursive poller warning, which ended in not much fun at all. This patch will skip the running of pollers and instead run the FSP poller to set the op-panel display before attn. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/fsp/fsp-op-panel.c')
-rw-r--r--hw/fsp/fsp-op-panel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/hw/fsp/fsp-op-panel.c b/hw/fsp/fsp-op-panel.c
index eb61e8d6..7063cbb3 100644
--- a/hw/fsp/fsp-op-panel.c
+++ b/hw/fsp/fsp-op-panel.c
@@ -40,7 +40,13 @@ static void fsp_op_display_fatal(uint32_t w0, uint32_t w1)
fsp_fillmsg(&op_msg, FSP_CMD_DISP_SRC_DIRECT, 3, 1, w0, w1);
- fsp_sync_msg(&op_msg, false);
+ /*
+ * A special way to send a message: it doesn't run pollers.
+ * This means we can call it while in a poller, which we may
+ * well be in when we're terminating (and thus displaying a *fatal*
+ * message on the op-panel).
+ */
+ fsp_fatal_msg(&op_msg);
}
void op_display(enum op_severity sev, enum op_module mod, uint16_t code)
OpenPOWER on IntegriCloud