Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'pm-tools'

* pm-tools:
cpupower: Remove redundant error check
cpupower: bench: parse.c: Fix several minor errors
cpupower: mperf monitor: Correct use of ! and &
cpupower: Adjust MAINTAINERS file
PM / tools: cpupower: drop negativity check on unsigned value

+29 -27
+1 -1
MAINTAINERS
··· 2521 2521 F: arch/x86/kernel/msr.c 2522 2522 2523 2523 CPU POWER MONITORING SUBSYSTEM 2524 - M: Dominik Brodowski <linux@dominikbrodowski.net> 2525 2524 M: Thomas Renninger <trenn@suse.de> 2525 + L: linux-pm@vger.kernel.org 2526 2526 S: Maintained 2527 2527 F: tools/power/cpupower/ 2528 2528
+21 -18
tools/power/cpupower/bench/parse.c
··· 158 158 int prepare_config(const char *path, struct config *config) 159 159 { 160 160 size_t len = 0; 161 - char *opt, *val, *line = NULL; 162 - FILE *configfile = fopen(path, "r"); 161 + char opt[16], val[32], *line = NULL; 162 + FILE *configfile; 163 163 164 164 if (config == NULL) { 165 165 fprintf(stderr, "error: config is NULL\n"); 166 166 return 1; 167 167 } 168 168 169 + configfile = fopen(path, "r"); 169 170 if (configfile == NULL) { 170 171 perror("fopen"); 171 172 fprintf(stderr, "error: unable to read configfile\n"); ··· 175 174 } 176 175 177 176 while (getline(&line, &len, configfile) != -1) { 178 - if (line[0] == '#' || line[0] == ' ') 177 + if (line[0] == '#' || line[0] == ' ' || line[0] == '\n') 179 178 continue; 180 179 181 - sscanf(line, "%as = %as", &opt, &val); 180 + if (sscanf(line, "%14s = %30s", opt, val) < 2) 181 + continue; 182 182 183 183 dprintf("parsing: %s -> %s\n", opt, val); 184 184 185 - if (strncmp("sleep", opt, strlen(opt)) == 0) 185 + if (strcmp("sleep", opt) == 0) 186 186 sscanf(val, "%li", &config->sleep); 187 187 188 - else if (strncmp("load", opt, strlen(opt)) == 0) 188 + else if (strcmp("load", opt) == 0) 189 189 sscanf(val, "%li", &config->load); 190 190 191 - else if (strncmp("load_step", opt, strlen(opt)) == 0) 191 + else if (strcmp("load_step", opt) == 0) 192 192 sscanf(val, "%li", &config->load_step); 193 193 194 - else if (strncmp("sleep_step", opt, strlen(opt)) == 0) 194 + else if (strcmp("sleep_step", opt) == 0) 195 195 sscanf(val, "%li", &config->sleep_step); 196 196 197 - else if (strncmp("cycles", opt, strlen(opt)) == 0) 197 + else if (strcmp("cycles", opt) == 0) 198 198 sscanf(val, "%u", &config->cycles); 199 199 200 - else if (strncmp("rounds", opt, strlen(opt)) == 0) 200 + else if (strcmp("rounds", opt) == 0) 201 201 sscanf(val, "%u", &config->rounds); 202 202 203 - else if (strncmp("verbose", opt, strlen(opt)) == 0) 203 + else if (strcmp("verbose", opt) == 0) 204 204 sscanf(val, "%u", &config->verbose); 205 205 206 - else if (strncmp("output", opt, strlen(opt)) == 0) 206 + else if (strcmp("output", opt) == 0) 207 207 config->output = prepare_output(val); 208 208 209 - else if (strncmp("cpu", opt, strlen(opt)) == 0) 209 + else if (strcmp("cpu", opt) == 0) 210 210 sscanf(val, "%u", &config->cpu); 211 211 212 - else if (strncmp("governor", opt, 14) == 0) 213 - strncpy(config->governor, val, 14); 212 + else if (strcmp("governor", opt) == 0) { 213 + strncpy(config->governor, val, 214 + sizeof(config->governor)); 215 + config->governor[sizeof(config->governor) - 1] = '\0'; 216 + } 214 217 215 - else if (strncmp("priority", opt, strlen(opt)) == 0) { 218 + else if (strcmp("priority", opt) == 0) { 216 219 if (string_to_prio(val) != SCHED_ERR) 217 220 config->prio = string_to_prio(val); 218 221 } 219 222 } 220 223 221 224 free(line); 222 - free(opt); 223 - free(val); 224 225 225 226 return 0; 226 227 }
+5 -6
tools/power/cpupower/utils/cpufreq-set.c
··· 320 320 321 321 printf(_("Setting cpu: %d\n"), cpu); 322 322 ret = do_one_cpu(cpu, &new_pol, freq, policychange); 323 - if (ret) 324 - break; 323 + if (ret) { 324 + print_error(); 325 + return ret; 326 + } 325 327 } 326 328 327 - if (ret) 328 - print_error(); 329 - 330 - return ret; 329 + return 0; 331 330 }
+1 -1
tools/power/cpupower/utils/helpers/sysfs.c
··· 81 81 close(fd); 82 82 83 83 value = strtoull(linebuf, &endp, 0); 84 - if (value > 1 || value < 0) 84 + if (value > 1) 85 85 return -EINVAL; 86 86 87 87 return value;
+1 -1
tools/power/cpupower/utils/idle_monitor/mperf_monitor.c
··· 237 237 unsigned long long hwcr; 238 238 unsigned long min; 239 239 240 - if (!cpupower_cpu_info.caps & CPUPOWER_CAP_INV_TSC) 240 + if (!(cpupower_cpu_info.caps & CPUPOWER_CAP_INV_TSC)) 241 241 goto use_sysfs; 242 242 243 243 if (cpupower_cpu_info.vendor == X86_VENDOR_AMD) {