Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rcu: fix implicit conversion in bit shift
../lib/rcu/rte_rcu_qsbr.c(101): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) ../lib/rcu/rte_rcu_qsbr.c(107): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) ../lib/rcu/rte_rcu_qsbr.c(145): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) These warnings are being issued by the MSVC compiler. Since the result is being stored in a variable of type uint64_t, it makes sense to shift a 64-bit number instead of shifting a 32-bit number and then having the compiler to convert the result implicitly to 64 bits. UINT64_C was used in the fix as it is the portable way to define a 64-bit constant (ULL suffix is architecture dependent). From reading the code this is also a bugfix: (1 << id), where id = thread_id & 0x3f, was wrong when thread_id > 0x1f. Fixes: 64994b5 ("rcu: add RCU library supporting QSBR mechanism") Cc: [email protected] Signed-off-by: Andre Muezerie <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Morten Brørup <[email protected]>
- Loading branch information