Commit e67b6ed2 authored by Srinivas Pandruvada's avatar Srinivas Pandruvada

tools/power/x86/intel-speed-select: Error on CPU count exceed in request

There is a limit on number of CPUs in one request. This is set to 256.
Currently tool silently ignores request for count over 256. Give an
error message to indicate this.
Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
parent 06bbebdb
...@@ -2622,10 +2622,11 @@ static struct process_cmd_struct isst_cmds[] = { ...@@ -2622,10 +2622,11 @@ static struct process_cmd_struct isst_cmds[] = {
*/ */
void parse_cpu_command(char *optarg) void parse_cpu_command(char *optarg)
{ {
unsigned int start, end; unsigned int start, end, invalid_count;
char *next; char *next;
next = optarg; next = optarg;
invalid_count = 0;
while (next && *next) { while (next && *next) {
if (*next == '-') /* no negative cpu numbers */ if (*next == '-') /* no negative cpu numbers */
...@@ -2635,6 +2636,8 @@ void parse_cpu_command(char *optarg) ...@@ -2635,6 +2636,8 @@ void parse_cpu_command(char *optarg)
if (max_target_cpus < MAX_CPUS_IN_ONE_REQ) if (max_target_cpus < MAX_CPUS_IN_ONE_REQ)
target_cpus[max_target_cpus++] = start; target_cpus[max_target_cpus++] = start;
else
invalid_count = 1;
if (*next == '\0') if (*next == '\0')
break; break;
...@@ -2661,6 +2664,8 @@ void parse_cpu_command(char *optarg) ...@@ -2661,6 +2664,8 @@ void parse_cpu_command(char *optarg)
while (++start <= end) { while (++start <= end) {
if (max_target_cpus < MAX_CPUS_IN_ONE_REQ) if (max_target_cpus < MAX_CPUS_IN_ONE_REQ)
target_cpus[max_target_cpus++] = start; target_cpus[max_target_cpus++] = start;
else
invalid_count = 1;
} }
if (*next == ',') if (*next == ',')
...@@ -2669,6 +2674,13 @@ void parse_cpu_command(char *optarg) ...@@ -2669,6 +2674,13 @@ void parse_cpu_command(char *optarg)
goto error; goto error;
} }
if (invalid_count) {
isst_ctdp_display_information_start(outf);
isst_display_error_info_message(1, "Too many CPUs in one request: max is", 1, MAX_CPUS_IN_ONE_REQ - 1);
isst_ctdp_display_information_end(outf);
exit(-1);
}
#ifdef DEBUG #ifdef DEBUG
{ {
int i; int i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment