summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2018-05-29 15:59:06 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-05-30 11:36:07 -0400
commitc0996da3cf36b548f7cfca35ad94b9a9c6a89a79 (patch)
treeb827e85d466c508d3cca856cb42d335e31e1a16e
parent5043493734898446d9e5148632b658153f0e1ceb (diff)
downloadtalos-hostboot-c0996da3cf36b548f7cfca35ad94b9a9c6a89a79.tar.gz
talos-hostboot-c0996da3cf36b548f7cfca35ad94b9a9c6a89a79.zip
PRD: use isValid() check before MemSymbol::getDram()
Change-Id: I79df99da27936b9b2967812ac1489432c9108fb0 CQ: SW431098 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59496 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59521 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>
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemMark.C5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
index 245cf7e11..9cad77e0d 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
@@ -983,8 +983,9 @@ uint32_t __applyRasPolicies<TYPE_MBA>( ExtensibleChip * i_chip,
// If the chip mark is on a spare then the spare is bad and hardware
// can not steer it to another DRAM even if one is available (e.g.
// the ECC spare). In this this case, make error log predictive.
- if ( ( dram == (0 == ps ? sp0.getDram() : sp1.getDram()) ) ||
- ( dram == ecc.getDram() ) )
+ if ( ( (0 == ps) && sp0.isValid() && (dram == sp0.getDram()) ) ||
+ ( (1 == ps) && sp1.isValid() && (dram == sp1.getDram()) ) ||
+ ( isX4 && ecc.isValid() && (dram == ecc.getDram()) ) )
{
allRepairsUsed = true;
io_sc.service_data->setSignature( i_chip->getHuid(),
OpenPOWER on IntegriCloud