Commit 7cc72553 authored by James Clark's avatar James Clark Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Check vmlinux/kallsyms arguments in all tools



Only perf report checked the validity of these arguments so apply the
same check to all tools that read them for consistency.

Signed-off-by: default avatarJames Clark <james.clark@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Denis Nikitin <denik@chromium.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20211018134844.2627174-3-james.clark@arm.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent a3df50ab
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -591,6 +591,10 @@ int cmd_annotate(int argc, const char **argv)
		return ret;
	}

	ret = symbol__validate_sym_arguments();
	if (ret)
		return ret;

	if (quiet)
		perf_quiet_option();

+4 −0
Original line number Diff line number Diff line
@@ -2768,6 +2768,10 @@ static int perf_c2c__report(int argc, const char **argv)
	if (c2c.stats_only)
		c2c.use_stdio = true;

	err = symbol__validate_sym_arguments();
	if (err)
		goto out;

	if (!input_name || !strlen(input_name))
		input_name = "perf.data";

+5 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include "util/build-id.h"
#include "util/strlist.h"
#include "util/strfilter.h"
#include "util/symbol.h"
#include "util/symbol_conf.h"
#include "util/debug.h"
#include <subcmd/parse-options.h>
@@ -629,6 +630,10 @@ __cmd_probe(int argc, const char **argv)
		params.command = 'a';
	}

	ret = symbol__validate_sym_arguments();
	if (ret)
		return ret;

	if (params.quiet) {
		if (verbose != 0) {
			pr_err("  Error: -v and -q are exclusive.\n");
+4 −0
Original line number Diff line number Diff line
@@ -2712,6 +2712,10 @@ int cmd_record(int argc, const char **argv)
	if (quiet)
		perf_quiet_option();

	err = symbol__validate_sym_arguments();
	if (err)
		return err;

	/* Make system wide (-a) the default target. */
	if (!argc && target__none(&rec->opts.target))
		rec->opts.target.system_wide = true;
+4 −0
Original line number Diff line number Diff line
@@ -3538,6 +3538,7 @@ int cmd_sched(int argc, const char **argv)
		.fork_event	    = replay_fork_event,
	};
	unsigned int i;
	int ret;

	for (i = 0; i < ARRAY_SIZE(sched.curr_pid); i++)
		sched.curr_pid[i] = -1;
@@ -3598,6 +3599,9 @@ int cmd_sched(int argc, const char **argv)
				parse_options_usage(NULL, timehist_options, "n", true);
			return -EINVAL;
		}
		ret = symbol__validate_sym_arguments();
		if (ret)
			return ret;

		return perf_sched__timehist(&sched);
	} else {
Loading