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/usr/intr | |
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/usr/intr')
-rw-r--r-- | src/usr/intr/intrrp.C | 24 |
1 files changed, 14 insertions, 10 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 |