diff options
author | Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com> | 2018-10-04 06:24:19 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-10-09 09:12:55 -0500 |
commit | 3b5764defdff5c0f4ca7628804983d7a2c86900e (patch) | |
tree | 985f1da96b1641473a831768534f6038b766d64e /src/usr/hwas/common | |
parent | 31b6cf0ac237a0365bcf225fc0e8ae20c7012b87 (diff) | |
download | blackbird-hostboot-3b5764defdff5c0f4ca7628804983d7a2c86900e.tar.gz blackbird-hostboot-3b5764defdff5c0f4ca7628804983d7a2c86900e.zip |
Skip resource recovery for node and power gard.
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>
Diffstat (limited to 'src/usr/hwas/common')
-rw-r--r-- | src/usr/hwas/common/deconfigGard.C | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C index f844ec912..7e77b4ef7 100644 --- a/src/usr/hwas/common/deconfigGard.C +++ b/src/usr/hwas/common/deconfigGard.C @@ -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); @@ -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)) { @@ -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; |