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:
Kaushlendra Kumar 2026-10-29 14:14:29 +05:30 committed by Len Brown
parent ab6e94fb4a
commit 3d6fc92be1

View File

@ -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;
}