From a681d519d4dc3d01b14df22ffa79c4e6bcfdec96 Mon Sep 17 00:00:00 2001 From: Ilya Smirnov Date: Wed, 21 Feb 2018 14:38:29 -0600 Subject: Pass i_skipComm to _buildOccs In the _resetOccs path the i_skipComm parameter is not getting passed into _buildOccs function that (almost) unconditionally executes sendOccPoll, regardless of whether the comm was supposed to be skipped or not. That 1) defeats the purpose of i_skipComm, and 2) may not work in the OCC reset path depending on how far into OCC setup the code has gotten before the reset was requested. Change-Id: I044e1193d8ddf022ada902030c74c75076af2f42 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54522 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Marshall J. Wilks Reviewed-by: Christopher J. Cain Reviewed-by: Andres A. Lugo-Reyes Reviewed-by: Nicholas E. Bofferding Reviewed-by: Daniel M. Crowell --- src/usr/htmgt/htmgt_occ.C | 13 ++++++++----- src/usr/htmgt/htmgt_occ.H | 10 +++++++--- 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/usr/htmgt/htmgt_occ.C b/src/usr/htmgt/htmgt_occ.C index d19fb952e..28f862a04 100644 --- a/src/usr/htmgt/htmgt_occ.C +++ b/src/usr/htmgt/htmgt_occ.C @@ -441,7 +441,8 @@ namespace HTMGT // Query the functional OCCs and build OCC objects - errlHndl_t OccManager::_buildOccs(const bool i_occStart) + errlHndl_t OccManager::_buildOccs(const bool i_occStart, + const bool i_skipComm) { errlHndl_t err = nullptr; bool safeModeNeeded = false; @@ -591,7 +592,8 @@ namespace HTMGT safeModeNeeded = true; } - if ((false == i_occStart) && (nullptr == err)) + if ((false == i_occStart) && (nullptr == err) && + (false == i_skipComm)) { // Send poll to query state of all OCCs // and flush any errors reported by the OCCs @@ -870,7 +872,7 @@ namespace HTMGT errlHndl_t err = nullptr; bool atThreshold = false; - err = _buildOccs(); // if not a already built. + err = _buildOccs(false, i_skipComm); // if not a already built. if (nullptr == err) { if (false == int_flags_set(FLAG_RESET_DISABLED)) @@ -1502,9 +1504,10 @@ namespace HTMGT } - errlHndl_t OccManager::buildOccs(const bool i_occStart) + errlHndl_t OccManager::buildOccs(const bool i_occStart, bool i_skipComm) { - return Singleton::instance()._buildOccs(i_occStart); + return Singleton::instance()._buildOccs(i_occStart, + i_skipComm); } diff --git a/src/usr/htmgt/htmgt_occ.H b/src/usr/htmgt/htmgt_occ.H index fb439672d..40f564fcf 100644 --- a/src/usr/htmgt/htmgt_occ.H +++ b/src/usr/htmgt/htmgt_occ.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2017 */ +/* Contributors Listed Below - COPYRIGHT 2014,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -453,9 +453,12 @@ namespace HTMGT * * @param[in] i_occStart true if call is being made after * OCCs have just been started. + * @param[in] i_skipComm true if sendOccPoll should not + * be called * @return NULL on success, or error handle on failure */ - static errlHndl_t buildOccs(const bool i_occStart = false); + static errlHndl_t buildOccs(bool i_occStart = false, + bool i_skipComm = false); /** @@ -687,7 +690,8 @@ namespace HTMGT /* See buildOccs() above */ - errlHndl_t _buildOccs(const bool i_occStart = false); + errlHndl_t _buildOccs(bool i_occStart = false, + bool i_skipComm = false); /* See getNumOccs() above */ -- cgit v1.2.3