summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/targetservicestart.C
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-03-21 11:48:36 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-03-29 17:09:51 -0400
commitfc2a04496b8406eda78cd17ed2965400b60abdcb (patch)
tree5a843ec064283c222ba0fa5fea8c3343313dc37c /src/usr/targeting/targetservicestart.C
parent46cd9952ddffed4cfbe26912bbafa982f96d3733 (diff)
downloadtalos-hostboot-fc2a04496b8406eda78cd17ed2965400b60abdcb.tar.gz
talos-hostboot-fc2a04496b8406eda78cd17ed2965400b60abdcb.zip
Ensure all hbmutex attributes get re-initialized on MPIPL
We saw a bug where we were getting hung up on one of the i2c engine mutexes on MPIPL. We still haven't determined WHY we are seeing the mutex locked after an MPIPL but just to be safe we are now looping through all of the targets and checking each attribute to see if it is of type hbmutex. If it is then we will call mutex_init on the mutex to reset it so the mutex is ready to use. Change-Id: Ie05f7f49c4599c7cfc5d33c43d79cb977bb0cd13 CQ: SW420894 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56136 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/targetservicestart.C')
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C
index 882c4391a..459f9e777 100755
--- a/src/usr/targeting/targetservicestart.C
+++ b/src/usr/targeting/targetservicestart.C
@@ -191,6 +191,12 @@ static void initTargeting(errlHndl_t& io_pError)
(void)l_targetService.init();
initializeAttributes(l_targetService, l_isMpipl, l_isIstepMode, l_scratch);
+ //Ensure all mutex attributes are reset on MPIPL
+ if(l_isMpipl)
+ {
+ l_targetService.resetMutexAttributes();
+ }
+
checkProcessorTargeting(l_targetService);
// Print out top-level model value from loaded targeting values.
@@ -483,8 +489,6 @@ static void initializeAttributes(TargetService& i_targetService,
{
tpm->setAttr<ATTR_HB_TPM_INIT_ATTEMPTED>(0);
tpm->setAttr<ATTR_HB_TPM_LOG_MGR_PTR>(0);
- auto tpmMutex=tpm->getHbMutexAttr<ATTR_HB_TPM_MUTEX>();
- mutex_init(tpmMutex);
}
//Assemble list of membuf and zero out some virtual address attributes
OpenPOWER on IntegriCloud