diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2013-05-23 12:35:18 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-05-28 14:31:16 -0500 |
commit | 2c579fab1f376fa26f52e8c423856e5b28a09cd5 (patch) | |
tree | 2f9a494dc611e1f8fc30d19323501d8537c5051a | |
parent | 94908c0b4e6495155d8501e7b1bf82699b47e61b (diff) | |
download | talos-hostboot-2c579fab1f376fa26f52e8c423856e5b28a09cd5.tar.gz talos-hostboot-2c579fab1f376fa26f52e8c423856e5b28a09cd5.zip |
Fix deadlock in mbox/ipc queue registration with HB interrupt service provider
CQ: SW205543
Change-Id: I1eef2f63e2b63528f20bbaa3482049e95f09d6ee
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4686
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/usr/mbox/mailboxsp.C | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/usr/mbox/mailboxsp.C b/src/usr/mbox/mailboxsp.C index aad84b043..3add7caf9 100644 --- a/src/usr/mbox/mailboxsp.C +++ b/src/usr/mbox/mailboxsp.C @@ -137,6 +137,11 @@ errlHndl_t MailboxSp::_init() spless = false; } + // create task before registering the msgQ so any waiting interrupts get + // handled as soon as the msgQ is registered with the interrupt service + // provider + task_create(MailboxSp::msg_handler, NULL); + if(!spless) { // Initialize the mailbox hardware @@ -161,8 +166,6 @@ errlHndl_t MailboxSp::_init() MSG_IPC, INTR::ISN_INTERPROC); - task_create(MailboxSp::msg_handler, NULL); - if(!spless) { |