summaryrefslogtreecommitdiffstats
path: root/src/usr/errl
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/errl
parentd15fae1e99b68953675d74a30caac80cbe5c72aa (diff)
downloadtalos-hostboot-ab00e2c95959ff546d6da72bde6bf2e664f62aff.tar.gz
talos-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/errl')
-rw-r--r--src/usr/errl/errlentry.C12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C
index 2cc64faf1..20d6782f1 100644
--- a/src/usr/errl/errlentry.C
+++ b/src/usr/errl/errlentry.C
@@ -1658,16 +1658,20 @@ uint64_t ErrlEntry::unflatten( const void * i_buffer, uint64_t i_len )
}
//@brief Return the list of User Detail sections
-//NOTE: You can pass COMP_ID 0 into this function for wildcard
-std::vector<ErrlUD*> ErrlEntry::getUDSections(compId_t i_compId)
+//NOTE: You can pass COMP_ID or subsect 0 into this function for wildcard
+std::vector<void*> ErrlEntry::getUDSections(compId_t i_compId,
+ uint8_t i_subSect)
{
- std::vector<ErrlUD*> copy_vector;
+ std::vector<void *> copy_vector;
for(auto const & section : iv_SectionVector)
{
if((section->compId() == i_compId) || (i_compId == 0))
{
- copy_vector.push_back(section);
+ if((section->subSect() == i_subSect) || (i_subSect == 0))
+ {
+ copy_vector.push_back(section->iv_pData);
+ }
}
}
OpenPOWER on IntegriCloud