Skip to content

Commit

Permalink
Skip resource recovery for node and power gard.
Browse files Browse the repository at this point in the history
After the node is deconfigured with non-fatal or power
error running a resource recovery will always recover the node
since all vital parts are deconfigured in the node. so
skipping the resource recovery for node. Power gard need
be considered as fatal so skipping resource recovery for
power gard too.

Change-Id: I246733b59d908a56401a0c602897a5d12522406b
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
CQ: SW444154
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66981
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
dhruvibm authored and dcrowell77 committed Oct 9, 2018
1 parent 31b6cf0 commit 3b5764d
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions src/usr/hwas/common/deconfigGard.C
Original file line number Diff line number Diff line change
Expand Up @@ -568,13 +568,6 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
{
GardRecord l_gardRecord = *l_itr;

//Continue only with FATAL/UNRECOVERABLE gard errors.
if((l_gardRecord.iv_errorType != GARD_Fatal)&&
(l_gardRecord.iv_errorType != GARD_Unrecoverable))
{
//Skip recoverable gard records
continue;
}
// Find the associated Target
Target * l_pTarget =
targetService().toTarget(l_gardRecord.iv_targetId);
Expand All @@ -590,6 +583,16 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
continue;
}

//Continue only with FATAL/UNRECOVERABLE gard errors.
//All gard on node deosnt need resource recovery
if(((l_gardRecord.iv_errorType != GARD_Fatal)&&
(l_gardRecord.iv_errorType != GARD_Unrecoverable))||
(l_pTarget->getAttr<ATTR_TYPE>() == TYPE_NODE))
{
//Skip recoverable gard records
continue;
}

// if this does NOT match, continue to next in loop
if (i_pPredicate && ((*i_pPredicate)(l_pTarget) == false))
{
Expand Down Expand Up @@ -726,9 +729,10 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
}
continue;
}
//Continue only with recoverable gard errors.
//Continue only with recoverable or non node gard errors.
if((l_gardRecord.iv_errorType == GARD_Fatal)||
(l_gardRecord.iv_errorType == GARD_Unrecoverable))
(l_gardRecord.iv_errorType == GARD_Unrecoverable)||
(l_pTarget->getAttr<ATTR_TYPE>() == TYPE_NODE))
{
//Skip non-recoverable gard records
continue;
Expand Down

0 comments on commit 3b5764d

Please sign in to comment.