diff options
author | Jay Azurin <jmazurin@us.ibm.com> | 2015-10-30 14:50:31 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-11-05 16:12:16 -0600 |
commit | d05d1349b25622ac454f60fb4032d249f8fc8b4a (patch) | |
tree | fc82a1f858dbdfec8afc5d86a7ea0833535daa37 | |
parent | 84b5ea9490992e1482e5697a3c2bd55a18f5e3d3 (diff) | |
download | talos-hostboot-d05d1349b25622ac454f60fb4032d249f8fc8b4a.tar.gz talos-hostboot-d05d1349b25622ac454f60fb4032d249f8fc8b4a.zip |
Fix missing eSEL due to 0 PEL size
Instead of always setting the PEL size to zero for the first SEL, set the PEL
size to zero only after a SEL is sent.
Change-Id: I9682d3098d92c9902c66b490eda9d48af73c1448
CQ: SW326258
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/21641
Tested-by: Jenkins Server
Tested-by: Jenkins OP Build CI
Tested-by: Jenkins OP HW
Tested-by: FSP CI Jenkins
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: Marshall J. Wilks <mjwilks@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/usr/errl/errlmanager_common.C | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/usr/errl/errlmanager_common.C b/src/usr/errl/errlmanager_common.C index 0020ee14e..3668e20ba 100644 --- a/src/usr/errl/errlmanager_common.C +++ b/src/usr/errl/errlmanager_common.C @@ -497,6 +497,8 @@ inline bool SensorModifier::modifySensor(uint8_t i_sensorType, /////////////////////////////////////////////////////////////////////////////// void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err, bool i_sendSels) { + bool l_selSent = false; + TRACFCOMP(g_trac_errl, ENTER_MRK "sendErrLogToBmc errlogId 0x%.8x, i_sendSels %d", io_err->eid(), i_sendSels); @@ -642,9 +644,14 @@ void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err, bool i_sendSels) l_eventOffset ); } - // if we are sending the first sel then we will include the - // pel data, otherwise we send no data - uint32_t selSize = ( i == 0 ) ? l_pelSize:0; + uint32_t selSize = l_pelSize; + + // if we sent an eSEL then set the PEL size to zero such + // that we don't send another eSEL for the same error log + if (l_selSent) + { + selSize = 0; + } // only send highest priority SELs or // SELs of lesser priority that were modified @@ -660,7 +667,10 @@ void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err, bool i_sendSels) l_eventDirType, l_eventOffset, l_sensorType, l_sensorNumber); + + l_selSent = true; } + } // for l_callouts } else |