diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2016-12-08 13:12:54 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2016-12-09 13:46:51 -0500 |
commit | 276ef3b2888634ac21a2bed2bf2c853f7687c1d5 (patch) | |
tree | be5952ecd5b480b16cf0b2326e3b7ab582591c64 /src/usr/diag/prdf/plat/mem/prdfP9Mca.C | |
parent | 33311a98cae4fbabbf94483e27803d3cfdf74484 (diff) | |
download | talos-hostboot-276ef3b2888634ac21a2bed2bf2c853f7687c1d5.tar.gz talos-hostboot-276ef3b2888634ac21a2bed2bf2c853f7687c1d5.zip |
PRD: fixed error handling for getSlaveRanks()/getMasterRanks()
getSlaveRanks() calls getMasterRanks() for each DIMM select, which
will assert if it does not find any master ranks on the DIMM select.
The issue is that it is possible for only one of the DIMM selects to
have configured ranks. So the code will assert when getSlaveRanks()
iterates on the non-configured DIMM select.
Change-Id: I233a5cbf6ac8df2f64a0ab4ea153e3d0d93bfc4a
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33612
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33643
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfP9Mca.C')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfP9Mca.C | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfP9Mca.C b/src/usr/diag/prdf/plat/mem/prdfP9Mca.C index 97b966acc..4a1f69b7d 100644 --- a/src/usr/diag/prdf/plat/mem/prdfP9Mca.C +++ b/src/usr/diag/prdf/plat/mem/prdfP9Mca.C @@ -81,6 +81,7 @@ int32_t RcdParityError( ExtensibleChip * i_mcaChip, std::vector<MemRank> list; getSlaveRanks<TYPE_MCA>( i_mcaChip->getTrgt(), list ); + PRDF_ASSERT( !list.empty() ); // target configured with no ranks for ( auto & r : list ) { @@ -88,7 +89,7 @@ int32_t RcdParityError( ExtensibleChip * i_mcaChip, uint32_t rc = mcbdb->getTdCtlr()->handleTdEvent( io_sc, entry ); if ( SUCCESS != rc ) { - PRDF_ERR( PRDF_FUNC "handleTdEvent(m%ds%s) failed on 0x%08x", + PRDF_ERR( PRDF_FUNC "handleTdEvent() failed on 0x%08x", i_mcaChip->getHuid() ); continue; // Try the other ranks. |