summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2013-11-12 09:38:39 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-13 16:13:43 -0600
commit9a6797492fe16ae9ce2bfb71760c122953879095 (patch)
treef88914662ec55c139509562aebf76d91824a04e4 /src/usr
parent5fbc5a59c927103b37f04e0d2055714f7aa8c93c (diff)
downloadtalos-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.C5
-rw-r--r--src/usr/intr/intrrp.H2
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.
OpenPOWER on IntegriCloud