diff options
| author | Kaushlendra Kumar <kaushlendra.kumar@intel.com> | 2025-12-01 17:47:45 +0530 |
|---|---|---|
| committer | Sasha Levin <sashal@kernel.org> | 2026-03-04 07:19:36 -0500 |
| commit | 20e804f62cf3592ad0c4e2feacb36ba73a99fec3 (patch) | |
| tree | 5acb2bc3e00b18bdcca6caffe911c4cd0eb2f6bd /tools | |
| parent | 5fbb7e91bcac787fc7d4827a7bdc1c4c5597837f (diff) | |
tools/power cpupower: Reset errno before strtoull()
[ Upstream commit f9bd3762cf1bd0c2465f2e6121b340883471d1bf ]
cpuidle_state_get_one_value() never cleared errno before calling
strtoull(), so a prior ERANGE caused every cpuidle counter read to
return zero. Reset errno to 0 before the conversion so each sysfs read
is evaluated independently.
Link: https://lore.kernel.org/r/20251201121745.3776703-1-kaushlendra.kumar@intel.com
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/power/cpupower/lib/cpuidle.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/power/cpupower/lib/cpuidle.c b/tools/power/cpupower/lib/cpuidle.c index f2c1139adf71..bd857ee7541a 100644 --- a/tools/power/cpupower/lib/cpuidle.c +++ b/tools/power/cpupower/lib/cpuidle.c @@ -150,6 +150,7 @@ unsigned long long cpuidle_state_get_one_value(unsigned int cpu, if (len == 0) return 0; + errno = 0; value = strtoull(linebuf, &endp, 0); if (endp == linebuf || errno == ERANGE) |
