diff options
| author | crgeddes <crgeddes@us.ibm.com> | 2016-08-10 10:15:01 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-08-24 14:31:08 -0400 |
| commit | ab00e2c95959ff546d6da72bde6bf2e664f62aff (patch) | |
| tree | 97de7bb1a5f981c5082d9220ae66088a2b958080 /src/usr/fapi2 | |
| parent | d15fae1e99b68953675d74a30caac80cbe5c72aa (diff) | |
| download | blackbird-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.C | 7 |
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; |

