diff options
| author | Nick Bofferding <bofferdn@us.ibm.com> | 2018-09-10 12:10:02 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-10-01 15:37:58 -0500 |
| commit | 01fcdb647ea0a6c899b9de21ed144f16dc2f2afb (patch) | |
| tree | 79f83d480cb50c10f7a3bb6ea662850b5460c1ea /src/usr/mbox | |
| parent | 7209f9061a3cbc8563e583d4abdcb8ffa4653ceb (diff) | |
| download | blackbird-hostboot-01fcdb647ea0a6c899b9de21ed144f16dc2f2afb.tar.gz blackbird-hostboot-01fcdb647ea0a6c899b9de21ed144f16dc2f2afb.zip | |
Shutdown: Move attribute sync to shutdown handler
Moved synching attributes into an attribute resource provider shutdown path
to avoid race conditions along the shutdown path where a normal error path
coupled with parallel shutdown leads to FSP attribute sync errors.
Change-Id: Ibdb828f8132da1e251f880ef0e7d4fea2e4619a3
CQ: SW443737
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66431
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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/mbox')
| -rw-r--r-- | src/usr/mbox/mailboxsp.C | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/usr/mbox/mailboxsp.C b/src/usr/mbox/mailboxsp.C index 618db7538..1e462dbbe 100644 --- a/src/usr/mbox/mailboxsp.C +++ b/src/usr/mbox/mailboxsp.C @@ -52,6 +52,7 @@ #include <sbeio/sbeioif.H> #include <sys/time.h> #include <intr/interrupt.H> +#include <targeting/attrrp.H> // Local functions namespace MBOX @@ -222,8 +223,17 @@ errlHndl_t MailboxSp::_init() #ifndef CONFIG_VPO_COMPILE // Start the the interprocessor communications message handler IPC::IpcSp::init(err); - // call ErrlManager function - tell him that MBOX is ready! - ERRORLOG::ErrlManager::errlResourceReady(ERRORLOG::MBOX); + + // On error VFS won't initialize the mailbox address space, opening up + // the chance of downstream task crashes later. + if(!err) + { + // call ErrlManager function - tell him that MBOX is ready! + ERRORLOG::ErrlManager::errlResourceReady(ERRORLOG::MBOX); + TARGETING::AttrRP::notifyResourceReady( + TARGETING::AttrRP::RESOURCE::MAILBOX); + } + #endif return err; |

