diff options
author | Matt Derksen <v2cibmd@us.ibm.com> | 2016-11-14 09:10:39 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-11-17 17:33:18 -0500 |
commit | e2ecb478ef40201550aa8b6787bc730f8263f42a (patch) | |
tree | bc21a644a087306a5f3b6e4cd085af83c68bd9a1 /src/usr | |
parent | e118b79cec102a9a9973e4007868789684454cc3 (diff) | |
download | talos-hostboot-e2ecb478ef40201550aa8b6787bc730f8263f42a.tar.gz talos-hostboot-e2ecb478ef40201550aa8b6787bc730f8263f42a.zip |
Do not automatically clear manually garded records
istep host_gard calls clearGardRecordsForReplacedTargets
and this needs to avoid clearing the manually garded records
Change-Id: Ic4dd52adb6cc3bc9041ffdd6c3d5719bd01f5df1
CQ: SW370258
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32721
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/hwas/common/deconfigGard.C | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C index 028839351..34a146bb9 100644 --- a/src/usr/hwas/common/deconfigGard.C +++ b/src/usr/hwas/common/deconfigGard.C @@ -226,7 +226,6 @@ errlHndl_t DeconfigGard::clearGardRecordsForReplacedTargets() continue; } - // if target is unchanged, continue to next in loop if (l_predicateHwasChanged(l_pTarget) == false) { @@ -235,6 +234,15 @@ errlHndl_t DeconfigGard::clearGardRecordsForReplacedTargets() continue; } + // if record is USER garded then don't clear it here and + // continue to next in loop + if (l_gardRecord.iv_errorType == GARD_User_Manual) + { + HWAS_INF("skipping %.8X - GARD user manual", + get_huid(l_pTarget)); + continue; + } + // we have made it this far so we know the target has changed // requiring its gard record to be cleared and eid stored // Clear the gard record @@ -286,6 +294,16 @@ errlHndl_t DeconfigGard::clearGardRecordsForReplacedTargets() continue; } + if (l_gardRecord.iv_errorType == GARD_User_Manual) + { + // do not clear user garded records + HWAS_INF("Still skipping USER garded record %08X", + get_huid(l_pTarget)); + + // skip this GARD record + continue; + } + // Compare the current GARD record against all the stored // EIDs from the first pass. If there is a match, // clear the GARD record. @@ -320,6 +338,7 @@ errlHndl_t DeconfigGard::clearGardRecordsForReplacedTargets() ++t_iter) { Target* l_pTarget = *t_iter; + if (l_predicateHwasChanged(l_pTarget)) { clear_hwas_changed_bit(l_pTarget,HWAS_CHANGED_BIT_GARD); |