diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2019-01-04 08:19:33 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-08 12:29:07 -0600 |
commit | c8c73af1c713d19e7a2f5e776b5691da8d17b7cd (patch) | |
tree | e1e0474a85080f48ef08498f3f72cb429ec2b39e /src/include/usr | |
parent | 2ab88987e5fed942b71b757e0c2972adee5b8e1b (diff) | |
download | talos-hostboot-c8c73af1c713d19e7a2f5e776b5691da8d17b7cd.tar.gz talos-hostboot-c8c73af1c713d19e7a2f5e776b5691da8d17b7cd.zip |
Deconfigure parent if no more functioning children of child's type
Defect discovered that a DIMM deconfig did not rollup to the membuf
because the membuf also has an l4_centaur child. The fix is
to check that the parent has no more children like the one being
deconfigured. Also make sure that deconfiguring l4_centaur
does not deconfigure its parent membuf.
Change-Id: Ic499092d0da926dcd3e0c08f5205e491e04f9680
CQ:SW451955
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70093
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r-- | src/include/usr/hwas/common/deconfigGard.H | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H index 8598bb242..0eda1aaed 100644 --- a/src/include/usr/hwas/common/deconfigGard.H +++ b/src/include/usr/hwas/common/deconfigGard.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2018 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -787,6 +787,23 @@ private: TARGETING::TargetService::CHILD ); /** + * @brief Return if any functional child matching the type and class + * of the passed in child target is present + * + * Called by _deconfigureByAssoc(). + * This function gets list of all children. if state of any + * child is functional then returns true. + * + * @param[in] i_my_parent - parent target + * @param[in] i_child - child target to match its class/type + * + * @return true if any child state is functional. + * + */ + bool anyFunctionalChildLikeMe( const TARGETING::Target * i_my_parent, + const TARGETING::Target * i_child ); + + /** * @brief Return FCO state of children * * Called by _deconfigureByAssoc(). |