summaryrefslogtreecommitdiffstats
path: root/src/usr/fapi2
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2016-08-10 10:15:01 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-08-24 14:31:08 -0400
commitab00e2c95959ff546d6da72bde6bf2e664f62aff (patch)
tree97de7bb1a5f981c5082d9220ae66088a2b958080 /src/usr/fapi2
parentd15fae1e99b68953675d74a30caac80cbe5c72aa (diff)
downloadblackbird-hostboot-ab00e2c95959ff546d6da72bde6bf2e664f62aff.tar.gz
blackbird-hostboot-ab00e2c95959ff546d6da72bde6bf2e664f62aff.zip
Fix pib err mask to actually look at the Userdetails section data
Previously there was a bug with pib_err_mask where we incorrectly tried to cast a userdetails object into an incorrect structure. This caused an issue when we tried to access members of the struct that we were casting to. This commit changes the function that provides lookup of userdetails sections so it only returns the user data that the user details section contains. Change-Id: I38d6bbef8525a177b3f1baf72ea042c8e756c34d Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28105 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <v2cibmd@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/fapi2')
-rw-r--r--src/usr/fapi2/plat_hw_access.C7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/usr/fapi2/plat_hw_access.C b/src/usr/fapi2/plat_hw_access.C
index d59d07446..2a58e3eba 100644
--- a/src/usr/fapi2/plat_hw_access.C
+++ b/src/usr/fapi2/plat_hw_access.C
@@ -342,10 +342,11 @@ errlHndl_t verifyCfamAccessTarget(const TARGETING::Target* i_target,
void checkPibMask(errlHndl_t& io_errLog )
{
//Delete the error if the mask matches the pib err
- for(auto section : io_errLog->getUDSections(SCOM_COMP_ID))
+ for(auto data : io_errLog->getUDSections(SCOM_COMP_ID, SCOM::SCOM_UDT_PIB))
{
- if((section->subSect() == SCOM::SCOM_UDT_PIB) &&
- (reinterpret_cast<SCOM::UdPibInfo *>(section)->iv_pib_err == pib_err_mask))
+ //We get the raw data from the userdetails section, which in this
+ //case is the pib_err itself so just check it.
+ if(*reinterpret_cast<uint8_t *>(data) == pib_err_mask)
{
FAPI_ERR( "Ignoring error %.8X due to pib_err_mask=%.1X", io_errLog->plid(), pib_err_mask );
delete io_errLog;
OpenPOWER on IntegriCloud