diff options
| author | Dean Sanner <dsanner@us.ibm.com> | 2013-11-12 09:38:39 -0600 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-13 16:13:43 -0600 |
| commit | 9a6797492fe16ae9ce2bfb71760c122953879095 (patch) | |
| tree | f88914662ec55c139509562aebf76d91824a04e4 /src/usr | |
| parent | 5fbc5a59c927103b37f04e0d2055714f7aa8c93c (diff) | |
| download | talos-hostboot-9a6797492fe16ae9ce2bfb71760c122953879095.tar.gz talos-hostboot-9a6797492fe16ae9ce2bfb71760c122953879095.zip | |
Handle less than 8 threads starting
Change-Id: I6a66a1a99dfe654f0477d0bd68b373aa53bf8074
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7179
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr')
| -rw-r--r-- | src/usr/intr/intrrp.C | 5 | ||||
| -rw-r--r-- | src/usr/intr/intrrp.H | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C index 4f11b53f4..977cf007f 100644 --- a/src/usr/intr/intrrp.C +++ b/src/usr/intr/intrrp.C @@ -429,7 +429,8 @@ void IntrRp::msgHandler() IPI_Info_t& ipiInfo = iv_ipisPending[core_pir]; - ipiInfo.first &= ~(1 << pir.threadId); + ipiInfo.first &= + ~(0x8000000000000000 >> pir.threadId); if (0 == ipiInfo.first) { @@ -535,7 +536,7 @@ void IntrRp::msgHandler() size_t threads = cpu_thread_count(); uint64_t en_threads = get_enabled_threads(); - iv_ipisPending[pir] = IPI_Info_t((1 << threads)-1, msg); + iv_ipisPending[pir] = IPI_Info_t(en_threads, msg); for(size_t thread = 0; thread < threads; ++thread) { diff --git a/src/usr/intr/intrrp.H b/src/usr/intr/intrrp.H index 1c03e3d19..17dcee41e 100644 --- a/src/usr/intr/intrrp.H +++ b/src/usr/intr/intrrp.H @@ -314,7 +314,7 @@ namespace INTR ChipList_t iv_chipList; //!< Proc chips with PSI intr enabled ISNList_t iv_isnList; //!< List of ISN's to clear on shutdown - typedef std::pair<uint8_t, msg_t*> IPI_Info_t; + typedef std::pair<uint64_t, msg_t*> IPI_Info_t; typedef std::map<PIR_t, IPI_Info_t> IPI_Pending_t; IPI_Pending_t iv_ipisPending; //!< Pending IPIs. |

