summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/core_activate/core_activate.C
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2014-07-28 10:30:53 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-09-02 09:25:39 -0500
commiteaf80e73c214b0609848ea36c2ae0338c27223de (patch)
treea11fcff57acba78d795d8bd9dc105d689f31f04c /src/usr/hwpf/hwp/core_activate/core_activate.C
parentce39a1f4b47a8e66bbed3f96b4a8010d37931a08 (diff)
downloadtalos-hostboot-eaf80e73c214b0609848ea36c2ae0338c27223de.tar.gz
talos-hostboot-eaf80e73c214b0609848ea36c2ae0338c27223de.zip
Fix Errorlog Overwrite / Callout for Core wakeup failure
Change-Id: I04300a1d80b19827c9fa74c196b2d41d8e3af386 CQ:SW268223 Backport: release-fips811 Backport: release-fips820 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/12555 Tested-by: Jenkins Server Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/core_activate/core_activate.C')
-rw-r--r--src/usr/hwpf/hwp/core_activate/core_activate.C48
1 files changed, 22 insertions, 26 deletions
diff --git a/src/usr/hwpf/hwp/core_activate/core_activate.C b/src/usr/hwpf/hwp/core_activate/core_activate.C
index 7fe698ac3..7e37a4609 100644
--- a/src/usr/hwpf/hwp/core_activate/core_activate.C
+++ b/src/usr/hwpf/hwp/core_activate/core_activate.C
@@ -333,7 +333,8 @@ void* call_host_activate_master( void *io_pArgs )
//
void* call_host_activate_slave_cores( void *io_pArgs )
{
- errlHndl_t l_errl = NULL;
+ errlHndl_t l_timeout_errl = NULL;
+ errlHndl_t l_errl = NULL;
IStepError l_stepError;
@@ -399,18 +400,19 @@ void* call_host_activate_slave_cores( void *io_pArgs )
rc,
pir);
- FAPI_INVOKE_HWP( l_errl, proc_check_slw_done,
+ FAPI_INVOKE_HWP( l_timeout_errl, proc_check_slw_done,
l_fapi_ex_target);
- if (l_errl)
+ if (l_timeout_errl)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR : proc_check_slw_done" );
// Add chip target info
- ErrlUserDetailsTarget(l_processor).addToLog( l_errl );
+ ErrlUserDetailsTarget(l_processor).addToLog(
+ l_timeout_errl );
// Create IStep error log
- l_stepError.addErrorDetails(l_errl);
+ l_stepError.addErrorDetails(l_timeout_errl);
// Commit error
- errlCommit( l_errl, HWPF_COMP_ID );
+ errlCommit( l_timeout_errl, HWPF_COMP_ID );
break;
}
else
@@ -440,7 +442,7 @@ void* call_host_activate_slave_cores( void *io_pArgs )
* @devdesc Kernel returned error when trying to activate
* core.
*/
- errlHndl_t l_tmperrl =
+ errlHndl_t l_errl =
new ERRORLOG::ErrlEntry(
ERRORLOG::ERRL_SEV_UNRECOVERABLE,
ISTEP_HOST_ACTIVATE_SLAVE_CORES,
@@ -449,19 +451,14 @@ void* call_host_activate_slave_cores( void *io_pArgs )
rc );
// Callout core that failed to wake up.
- l_tmperrl->addHwCallout(*l_core,
+ l_errl->addHwCallout(*l_core,
HWAS::SRCI_PRIORITY_MED,
HWAS::DECONFIG,
HWAS::GARD_Predictive);
- if (NULL == l_errl)
- {
- l_errl = l_tmperrl;
- }
- else
- {
- errlCommit( l_tmperrl, HWPF_COMP_ID );
- }
+ l_stepError.addErrorDetails( l_errl );
+ errlCommit( l_errl, HWPF_COMP_ID );
+ break;
}
else //Core out of winkle sucessfully, issue SPWU for PRD
{
@@ -515,9 +512,11 @@ void* call_host_activate_slave_cores( void *io_pArgs )
*
* @devdesc Call to getParentAffinityTarget requesting
* the number of EX chips with parent affinity
- * to a core, returned and incorrect vector size,
+ * to a core, returned an incorrect vector size,
* the expected size is 1.
*
+ * @custdec A problem occurred during the IPL of the system.
+ *
*/
l_errl =
new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
@@ -525,19 +524,16 @@ void* call_host_activate_slave_cores( void *io_pArgs )
ISTEP_INCORRECT_TARGET_COUNT,
pir,
targetList.size(), true);
+ // Create IStep error log and cross ref error that occurred
+ l_stepError.addErrorDetails( l_errl );
+
+ // Commit Error
+ errlCommit( l_errl, HWPF_COMP_ID );
}
}
}
- if (l_errl)
- {
- // Create IStep error log and cross reference error that occurred
- l_stepError.addErrorDetails( l_errl );
-
- // Commit Error
- errlCommit(l_errl, HWPF_COMP_ID);
- }
- else
+ if( !l_stepError.getErrorHandle() )
{
// Call proc_post_winkle
TARGETING::TargetHandleList l_procTargetList;
OpenPOWER on IntegriCloud