mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
tools/power turbostat: Fix undefined behavior in pmt_gen_value_mask()
The function uses plain int literal '1' for bit shifting, which causes undefined behavior when msb >= 31. This is because shifting a 32-bit int by 32 or more bits is undefined behavior in C. Fix by using 1ULL (unsigned long long) instead of 1 to ensure 64-bit arithmetic on all platforms. Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
ab6e94fb4a
commit
3d6fc92be1
|
|
@ -5194,9 +5194,9 @@ unsigned long pmt_gen_value_mask(unsigned int lsb, unsigned int msb)
|
|||
if (msb == 63)
|
||||
mask = 0xffffffffffffffff;
|
||||
else
|
||||
mask = ((1 << (msb + 1)) - 1);
|
||||
mask = ((1ULL << (msb + 1)) - 1);
|
||||
|
||||
mask -= (1 << lsb) - 1;
|
||||
mask -= (1ULL << lsb) - 1;
|
||||
|
||||
return mask;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user