summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2014-03-04 13:22:31 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-03-07 12:31:12 -0600
commit07519a5eaddd5b7a02bf73fa3a46f9c2319fcd30 (patch)
tree98a5b1aaec255e0b4b6fd397dd3fd69966a7fbe8 /src/usr/initservice
parentde6f390985b862e744d9974600b3263f75f929c8 (diff)
downloadtalos-hostboot-07519a5eaddd5b7a02bf73fa3a46f9c2319fcd30.tar.gz
talos-hostboot-07519a5eaddd5b7a02bf73fa3a46f9c2319fcd30.zip
Prevent error log deletion of non-istep error logs.
While looking at another issue, I noticed that we were assuming that all error logs returned to istep dispatcher were the generic 'istep failed' logs, but that is not the case. Ensure we do not delete an important log when we call an istep that does not use the generic wrapper log, such as the MDIA/PRD isteps. Change-Id: Ibab8ba57c09f76f83ab811d7f563fb0977e0a43b Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9292 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: WILLIAM G. HOFFA <wghoffa@us.ibm.com> Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/initservice')
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
index 1f9fc1099..86968b996 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
@@ -311,15 +311,23 @@ errlHndl_t IStepDispatcher::executeAllISteps()
}
else
{
- // The IStep returned an error, This is the generic
- // 'IStep failed' from the IStepError class, real
- // errors detailing the failure have already been
- // committed. Record the PLID and delete it. This
- // will be replaced by the checkMinimumHardware
- // error with the same plid that matches the real
- // errors
+ // The IStep returned an error and this is likely
+ // the generic 'IStep failed' from the
+ // IStepError class; real errors detailing the
+ // failure have already been committed. Record the
+ // PLID and delete it if 'Istep failed' or
+ // commit it otherwised. This will be replaced by
+ // the checkMinimumHardware error with the same
+ // plid that matches the real errors
const uint32_t l_plid = err->plid();
- delete err;
+ if (ISTEP::ISTEP_FAILURE == err->reasonCode())
+ {
+ delete err;
+ }
+ else
+ {
+ errlCommit(err, INITSVC_COMP_ID);
+ }
err = l_errl;
l_errl = NULL;
err->plid(l_plid);
OpenPOWER on IntegriCloud