diff options
| -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. |

