Skip to content

Commit

Permalink
PRD: ignore SCOM errors in rule code summary construct
Browse files Browse the repository at this point in the history
This is a bit unusual, but we are going to ignore SiCOM failures.
This takes care of a corner case where one of the summary registers
in the list returns an error, but there is another summary register
with an active attention, which would be ignored if we gave a bad
return code.

Change-Id: I25ae90ac424e28422aab5d48af128b03ccfb1344
CQ: SW436299
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62083
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62182
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>
  • Loading branch information
zane131 committed Jul 12, 2018
1 parent 6c5154f commit de5c390
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2017 */
/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -116,7 +116,24 @@ class SummaryRegister : public SCAN_COMM_REGISTER_CLASS
return *this;
}

virtual uint32_t Read() const { return iv_child->Read(); }
virtual uint32_t Read() const
{
uint32_t rc = iv_child->Read();
if ( PRD_SCANCOM_FAILURE == rc )
{
// This is a bit unusual, but we are going to ignore SCOM failures.
// This takes care of a corner case where one of the summary
// registers in the list returns an error, but there is another
// summary register with an active attention, which would be ignored
// if we return a bad rc.
PRDF_INF( "[SummaryRegister::read] SCOM failure on register ID "
"0x%04x, ignoring error", iv_child->GetId() );
rc = SUCCESS;
iv_child->clearAllBits(); // just in case
}
return rc;
}

virtual uint32_t Write() { return iv_child->Write(); }

const BitString * GetBitString(
Expand Down

0 comments on commit de5c390

Please sign in to comment.