diff options
author | Bill Hoffa <wghoffa@us.ibm.com> | 2018-02-13 15:12:23 -0600 |
---|---|---|
committer | Dean Sanner <dsanner@us.ibm.com> | 2018-02-14 10:00:32 -0500 |
commit | 294a73d38078f2b1ae8547f4a8622b12756dfba1 (patch) | |
tree | a47a969bf508c88f1f38f24e0b7cdbc6b656a460 /src | |
parent | 0bfdbce84ec94859d13e35b537cdbb0c3240945c (diff) | |
download | talos-hostboot-294a73d38078f2b1ae8547f4a8622b12756dfba1.tar.gz talos-hostboot-294a73d38078f2b1ae8547f4a8622b12756dfba1.zip |
Re-order INTR/IPC shutdown message handling
- The mbox msg_handler already subscribes to the
INITSERVICE shutdown message so perform the IPC
shutdown logic during that
Change-Id: I2402e6ac17212051029de3474e24b8e91dce9544
CQ: SW417278
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53984
Reviewed-by: Richard J. Knight <rjknight@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@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: Dean Sanner <dsanner@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/intr/intrrp.C | 24 | ||||
-rw-r--r-- | src/usr/mbox/mailboxsp.C | 11 |
2 files changed, 18 insertions, 17 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C index d5f00f8ef..81c4ebd93 100644 --- a/src/usr/intr/intrrp.C +++ b/src/usr/intr/intrrp.C @@ -1074,19 +1074,23 @@ void IntrRp::msgHandler() TRACFCOMP(g_trac_intr, "INTR remove registration of interrupt type = 0x%lx", msg->data[0]); - LSIvalue_t l_type = static_cast<LSIvalue_t>(msg->data[0]); - LSIvalue_t l_intr_type = static_cast<LSIvalue_t> + + ext_intr_t l_type = static_cast<ext_intr_t>(msg->data[0]); + ext_intr_t l_intr_type = static_cast<ext_intr_t> (l_type & LSI_SOURCE_MASK); - // Mask the interrupt source prior to unregistering - errlHndl_t err = maskInterruptSource(l_intr_type); - if(err) + if (l_type != ISN_INTERPROC) { - TRACFCOMP(g_trac_intr, - "IntrRp::msgHandler MSG_INTR_UNREGISTER_MSGQ error" - " masking interrupt type: %lx", - l_intr_type); - errlCommit(err,INTR_COMP_ID); + // Mask the interrupt source prior to unregistering + errlHndl_t err = maskInterruptSource(l_intr_type); + if(err) + { + TRACFCOMP(g_trac_intr, + "IntrRp::msgHandler MSG_INTR_UNREGISTER_MSGQ" + " error masking interrupt type: %lx", + l_intr_type); + errlCommit(err,INTR_COMP_ID); + } } // Unregister for this source and return rc in response diff --git a/src/usr/mbox/mailboxsp.C b/src/usr/mbox/mailboxsp.C index b2d8d3bc9..09ec697d4 100644 --- a/src/usr/mbox/mailboxsp.C +++ b/src/usr/mbox/mailboxsp.C @@ -446,12 +446,8 @@ void MailboxSp::msgHandler() { if (msg->data[0] == INTR::SHUT_DOWN) { - //Unregister for this message to prevent future - // messages from INTRP during shut down - msg_respond(iv_msgQ,msg); - TRACFCOMP(g_trac_mbox,INFO_MRK - "MSG_IPC SHUT_DOWN message received, unregistering for IPC messages"); - INTR::unRegisterMsgQ(INTR::ISN_INTERPROC); + TRACFCOMP(g_trac_mbox, INFO_MRK + "Shutdown Message sent for IPC, ignoring."); } else { @@ -1953,9 +1949,10 @@ void MailboxSp::handleShutdown() #if (0) // @todo RTC:126643 INTR::unRegisterMsgQ(INTR::LSI_FSIMBOX); - INTR::unRegisterMsgQ(INTR::ISN_INTERPROC); #endif + INTR::unRegisterMsgQ(INTR::ISN_INTERPROC); + if(err) // SCOM failed. { // If this failed, the whole system is probably buggered up. |