summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/mem
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2017-07-24 13:26:11 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2017-07-27 12:19:01 -0400
commit0fd2495490d8f71ecd35aca2f85d7b33f0f26d8b (patch)
treeb8cfac94ba90764d4f42fdba551d2b5e55d8ebf5 /src/usr/diag/prdf/common/plat/mem
parent4c996c92d557b46280ba5cdd93f3d19a1a02efc3 (diff)
downloadtalos-hostboot-0fd2495490d8f71ecd35aca2f85d7b33f0f26d8b.tar.gz
talos-hostboot-0fd2495490d8f71ecd35aca2f85d7b33f0f26d8b.zip
PRD: handle nullptr returned from getConnectedChild()
Change-Id: I6af579583bbe3033df99d6ba2f6e57c7e79166a9 CQ: SW396395 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43556 Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> 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/43695 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>
Diffstat (limited to 'src/usr/diag/prdf/common/plat/mem')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemoryMru.C31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemoryMru.C b/src/usr/diag/prdf/common/plat/mem/prdfMemoryMru.C
index f4bbe6648..d063caa10 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemoryMru.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemoryMru.C
@@ -243,26 +243,29 @@ TargetHandleList MemoryMru::getCalloutList() const
}
else if ( TARGETING::TYPE_MCA == getTargetType(iv_target) )
{
- if ( NO_SPECIAL_CALLOUT != iv_special )
+ if ( CALLOUT_ALL_MEM == iv_special )
{
- switch ( iv_special )
+ o_list = getConnected( iv_target, TYPE_DIMM );
+ }
+ else if ( (CALLOUT_RANK == iv_special) ||
+ (NO_SPECIAL_CALLOUT == iv_special) )
+ {
+ // Rank callouts and symbol callouts both callout a single DIMM.
+ uint32_t ds = iv_rank.getDimmSlct();
+ TargetHandle_t dimm = getConnectedChild( iv_target,
+ TYPE_DIMM, ds );
+ if ( nullptr == dimm )
{
- case CALLOUT_RANK:
- o_list.push_back(getConnectedChild(iv_target, TYPE_DIMM,
- iv_rank.getDimmSlct()) );
- break;
- case CALLOUT_ALL_MEM:
- o_list = getConnected( iv_target, TYPE_DIMM );
- break;
- default:
- PRDF_ERR( PRDF_FUNC "MemoryMruData::Callout 0x%02x not "
- "supported", iv_special );
+ PRDF_ERR( PRDF_FUNC "getConnectedChild(0x%08x,%d) returned "
+ "nullptr", getHuid(iv_target), ds );
}
+ else
+ o_list.push_back( dimm );
}
else
{
- o_list.push_back(getConnectedChild(iv_target, TYPE_DIMM,
- iv_rank.getDimmSlct()) );
+ PRDF_ERR( PRDF_FUNC "MemoryMruData::Callout 0x%02x not "
+ "supported", iv_special );
}
}
else
OpenPOWER on IntegriCloud