@@ -296,7 +296,7 @@ int cmd_freq_set(int argc, char **argv)
struct cpufreq_affected_cpus *cpus;
if (!bitmask_isbitset(cpus_chosen, cpu) ||
- cpupower_is_cpu_online(cpu))
+ cpupower_is_cpu_online(cpu) != 1)
continue;
cpus = cpufreq_get_related_cpus(cpu);
@@ -315,8 +315,7 @@ int cmd_freq_set(int argc, char **argv)
for (cpu = bitmask_first(cpus_chosen);
cpu <= bitmask_last(cpus_chosen); cpu++) {
- if (!bitmask_isbitset(cpus_chosen, cpu) ||
- cpupower_is_cpu_online(cpu))
+ if (!bitmask_isbitset(cpus_chosen, cpu))
continue;
if (cpupower_is_cpu_online(cpu) != 1)
It used to look at whether the cpuN directory existed (a function which returned 0 on success, nonzero on failure), but the cpupower_is_cpu_online function returns 1 when the CPU is online. This caused it to skip all online CPUs since it was expecting 0 to mean 'online'. We also had a redundant (and also wrong) check on cpupower_is_cpu_online when iterating over the bitmask to run the set operations. Signed-off-by: Steven Noonan <steven@uplinklabs.net> --- tools/power/cpupower/utils/cpufreq-set.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)