cpumf/chcpumf: Simplify function read_sfb

Simplify function read_sfb(). Convert it to type void
and return only when no errors occurred.
On error print error message and exit instead of return.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Thomas Richter
2021-04-14 10:02:42 +02:00
committed by Jan Höppner
parent 27a562da0a
commit 0772c0f01b

View File

@@ -85,10 +85,9 @@ static long parse_buffersize(char *string)
return bytes;
}
static int read_sfb(unsigned long *min, unsigned long *max)
static void read_sfb(unsigned long *min, unsigned long *max)
{
unsigned long cur_min_sdb, cur_max_sdb;
int rc = EXIT_SUCCESS;
FILE *fp;
if (geteuid())
@@ -97,8 +96,8 @@ static int read_sfb(unsigned long *min, unsigned long *max)
if (!fp)
err(EXIT_FAILURE, PERF_SFB_SIZE);
if (fscanf(fp, "%ld,%ld", &cur_min_sdb, &cur_max_sdb) != 2) {
warnx("Can not parse file " PERF_SFB_SIZE);
rc = EXIT_FAILURE;
fclose(fp);
errx(EXIT_FAILURE, "Can not parse file " PERF_SFB_SIZE);
} else {
if (*min == 0)
*min = cur_min_sdb;
@@ -106,7 +105,9 @@ static int read_sfb(unsigned long *min, unsigned long *max)
*max = cur_max_sdb;
}
fclose(fp);
return rc;
if (*min >= *max)
errx(EXIT_FAILURE,
"The specified maximum must be greater than the minimum");
}
static int write_sfb(unsigned long min, unsigned long max)
@@ -182,7 +183,6 @@ static int parse_args(int argc, char **argv)
int main(int argc, char **argv)
{
int ret = EXIT_FAILURE;
struct stat sbuf;
util_prg_init(&prg);
@@ -192,10 +192,6 @@ int main(int argc, char **argv)
if (stat(PERF_PATH PERF_SF, &sbuf))
errx(EXIT_FAILURE,
"No CPU-measurement sampling facility detected");
if (read_sfb(&min_sdb, &max_sdb))
return ret;
if (min_sdb >= max_sdb)
errx(EXIT_FAILURE,
"The specified maximum must be greater than the minimum");
read_sfb(&min_sdb, &max_sdb);
return write_sfb(min_sdb, max_sdb);
}