summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/usr/hwpf/hwpf_reasoncodes.H2
-rw-r--r--src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C31
2 files changed, 31 insertions, 2 deletions
diff --git a/src/include/usr/hwpf/hwpf_reasoncodes.H b/src/include/usr/hwpf/hwpf_reasoncodes.H
index 1a0d9c873..ce8f55e0e 100644
--- a/src/include/usr/hwpf/hwpf_reasoncodes.H
+++ b/src/include/usr/hwpf/hwpf_reasoncodes.H
@@ -65,6 +65,7 @@ namespace fapi
MOD_PLAT_ATTR_SVC_GET_BADDQ_DATA = 0x1A,
MOD_PLAT_ATTR_SVC_SET_BADDQ_DATA = 0x1B,
MOD_HOST_COALESCE_HOST = 0x1C,
+ MOD_ATTR_OVERRIDE = 0x1D,
};
/**
@@ -112,6 +113,7 @@ namespace fapi
RC_NO_SINGLE_MBA = HWPF_COMP_ID | 0x29,
RC_HOST_TIMER_EXPIRED = HWPF_COMP_ID | 0x2A,
RC_HOST_TIMER_THREAD_FAIL = HWPF_COMP_ID | 0x2B,
+ RC_NULL_POINTER = HWPF_COMP_ID | 0x2C,
};
/**
diff --git a/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C b/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C
index 05b67d0ba..99da5d9f9 100644
--- a/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C
+++ b/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -40,6 +40,7 @@
#include <mbox/mboxif.H>
#include <hwpf/plat/fapiPlatAttrOverrideSync.H>
#include <hwpf/plat/fapiPlatTrace.H>
+#include <hwpf/hwpf_reasoncodes.H>
#include <targeting/common/utilFilter.H>
#include <targeting/common/attributeTank.H>
@@ -171,7 +172,30 @@ void AttrOverrideSync::monitorForFspMessages()
l_chunk.iv_size = l_pMsg->data[1];
l_chunk.iv_pAttributes = static_cast<uint8_t *>(l_pMsg->extra_data);
- if (l_tank == TARGETING::AttributeTank::TANK_LAYER_FAPI)
+ if (l_chunk.iv_pAttributes == NULL)
+ {
+ FAPI_ERR("monitorForFspMessages: tank %d, size %d, NULL data pointer",
+ l_tank, l_chunk.iv_size);
+ /*@
+ * @errortype
+ * @moduleid fapi::MOD_ATTR_OVERRIDE
+ * @reasoncode fapi::RC_NULL_POINTER
+ * @userdata1 Attribute Tank (FAPI/TARG)
+ * @userdata2 Size of attribute overrides
+ * @devdesc Override message received from HWSV
+ * contains NULL data pointer
+ */
+ const bool hbSwError = false;
+ errlHndl_t l_pError = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ fapi::MOD_ATTR_OVERRIDE,
+ fapi::RC_NULL_POINTER,
+ l_tank, l_chunk.iv_size, hbSwError);
+ l_pError->addProcedureCallout(HWAS::EPUB_PRC_SP_CODE,
+ HWAS::SRCI_PRIORITY_HIGH);
+ errlCommit(l_pError, HWPF_COMP_ID);
+ }
+ else if (l_tank == TARGETING::AttributeTank::TANK_LAYER_FAPI)
{
FAPI_INF(
"monitorForFspMessages: MSG_SET_OVERRIDES FAPI (size %lld)",
@@ -224,6 +248,9 @@ void AttrOverrideSync::monitorForFspMessages()
{
FAPI_ERR("monitorForFspMessages: Unrecognized message 0x%x",
l_pMsg->type);
+ free(l_pMsg->extra_data);
+ l_pMsg->extra_data = NULL;
+ msg_free(l_pMsg);
}
}
}
OpenPOWER on IntegriCloud