From e2ecb478ef40201550aa8b6787bc730f8263f42a Mon Sep 17 00:00:00 2001 From: Matt Derksen Date: Mon, 14 Nov 2016 09:10:39 -0600 Subject: 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 Tested-by: FSP CI Jenkins Reviewed-by: Martin Gloff Reviewed-by: Christian R. Geddes Reviewed-by: Daniel M. Crowell --- src/usr/hwas/common/deconfigGard.C | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/usr/hwas/common/deconfigGard.C') 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); -- cgit v1.2.1