summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C')
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C
index 3dfe9b263..539df11ab 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCeTable.C
@@ -58,8 +58,10 @@ bool CenMbaCeTable::addEntry( const CenAddr & i_addr,
CeTable::iterator it = std::find( iv_table.begin(), iv_table.end(), data );
if ( iv_table.end() != it )
{
- // Update the count
- data.count = it->count + 1;
+ // Update the count only if the entry is active. Otherwise, use the
+ // reset count from the contructor.
+ if ( it->active )
+ data.count = it->count + 1;
// Update the DRAM pins
data.dramPins |= it->dramPins;
@@ -89,7 +91,7 @@ bool CenMbaCeTable::addEntry( const CenAddr & i_addr,
for ( CeTable::iterator it = iv_table.begin();
it != iv_table.end(); it++ )
{
- if ( it->addr.getRank() == thisRank )
+ if ( it->active && (it->addr.getRank() == thisRank) )
rankCount++;
}
@@ -131,6 +133,9 @@ bool CenMbaCeTable::addEntry( const CenAddr & i_addr,
void CenMbaCeTable::deactivateAll()
{
+ // NOTE: We don't want to reset the count here because it will be used for
+ // FFDC. Instead the count will be reset in addEntry() if the entry is
+ // not active.
for ( CeTable::iterator it = iv_table.begin(); it != iv_table.end(); it++ )
it->active = false;
}
@@ -139,6 +144,9 @@ void CenMbaCeTable::deactivateAll()
void CenMbaCeTable::deactivateRank( const CenRank & i_rank )
{
+ // NOTE: We don't want to reset the count here because it will be used for
+ // FFDC. Instead the count will be reset in addEntry() if the entry is
+ // not active.
for ( CeTable::iterator it = iv_table.begin(); it != iv_table.end(); it++ )
{
if ( it->addr.getRank() == i_rank )
OpenPOWER on IntegriCloud