diff options
author | 2016-11-16 14:34:53 +0200 | |
---|---|---|
committer | 2016-11-16 14:34:53 +0200 | |
commit | 0d96ac1e84acb03efb7db611dd4f682cc253b730 (patch) | |
tree | 5b39c95617f7a5dfd7f5fe5d1d41bf9c31727df1 /src | |
parent | 216689ebf931fe377295f2f597db41f839b7cbef (diff) |
fix threads number 31+ in config causing overflow in mask calculations
Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/bp_sim.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp index 90560417..c1df72fc 100755 --- a/src/bp_sim.cpp +++ b/src/bp_sim.cpp @@ -160,8 +160,8 @@ uint64_t CPlatformSocketInfoNoConfig::get_cores_mask(){ int i; int offset=0; /* master */ - uint32_t res=1; - uint32_t mask=(1<<(offset+1)); + uint64_t res=1; + uint64_t mask=(1LL<<(offset+1)); for (i=0; i<(cores_number-1); i++) { res |= mask ; mask = mask <<1; @@ -388,14 +388,14 @@ uint64_t CPlatformSocketInfoConfig::get_cores_mask(){ printf(" ERROR phy threads can't be higher than 64 \n"); exit(1); } - mask |=(1<<i); + mask |=(1LL<<i); } } - mask |=(1<<m_platform->m_master_thread); + mask |=(1LL<<m_platform->m_master_thread); assert(m_platform->m_master_thread<64); if (m_rx_is_enabled) { - mask |=(1<<m_platform->m_rx_thread); + mask |=(1LL<<m_platform->m_rx_thread); assert(m_platform->m_rx_thread<64); } return (mask); |