aboutsummaryrefslogtreecommitdiff
path: root/hw/psi.c
diff options
context:
space:
mode:
authorAnanth N Mavinakayanahalli <ananth@in.ibm.com>2015-02-06 08:24:17 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-02-09 14:31:11 +1100
commit92366bd2844aace9681e2447c82a24e92eabc51c (patch)
tree191f592d9f9c2116cd1af2c30ad5e404f8d5d133 /hw/psi.c
parent739e6df1163301a200b604b5eefa00770f9fa44c (diff)
downloadskiboot-92366bd2844aace9681e2447c82a24e92eabc51c.zip
skiboot-92366bd2844aace9681e2447c82a24e92eabc51c.tar.gz
skiboot-92366bd2844aace9681e2447c82a24e92eabc51c.tar.bz2
PSI: Report a PEL for PSI timeout
We currently just log an error when we don't find an active PSI link 15 minutes after it went down. Add a PEL log, with sufficient severity so it gets pushed to the administrator. V2: Reset the timeout correctly to prevent error log flooding. Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Tested-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/psi.c')
-rw-r--r--hw/psi.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/hw/psi.c b/hw/psi.c
index 5225656..7d7b5f6 100644
--- a/hw/psi.c
+++ b/hw/psi.c
@@ -32,6 +32,7 @@
#include <i2c.h>
#include <timebase.h>
#include <platform.h>
+#include <errorlog.h>
static LIST_HEAD(psis);
static u64 psi_link_timer;
@@ -44,6 +45,10 @@ static void psi_activate_phb(struct psi *psi);
static struct lock psi_lock = LOCK_UNLOCKED;
+DEFINE_LOG_ENTRY(OPAL_RC_PSI_TIMEOUT, OPAL_PLATFORM_ERR_EVT, OPAL_PSI,
+ OPAL_PLATFORM_FIRMWARE,
+ OPAL_UNRECOVERABLE_ERR_LOSS_OF_FUNCTION, OPAL_NA, NULL);
+
void psi_set_link_polling(bool active)
{
printf("PSI: %sing link polling\n",
@@ -201,9 +206,10 @@ static void psi_link_poll(void *data __unused)
now + secs_to_tb(PSI_LINK_RECOVERY_TIMEOUT);
if (tb_compare(now, psi_link_timeout) == TB_AAFTERB) {
- prerror("PSI: Timed out looking for a PSI link\n");
-
- /* Log error to the host from here */
+ log_simple_error(&e_info(OPAL_RC_PSI_TIMEOUT),
+ "PSI: Link timeout -- loss of FSP\n");
+ /* Reset the link timeout and continue looking */
+ psi_link_timeout = 0;
}
/* Poll every 10 seconds */