[PATCH 3/3] perf probe: Check -v and -q options in the right place

From: Yang Jihong
Date: Mon Dec 19 2022 - 23:00:04 EST


Check the -q and -v options first to return earlier on error.

Before:
# perf probe -q -v test
probe-definition(0): test
symbol:test file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Error: -v and -q are exclusive.

After:
# perf probe -q -v test
Error: -v and -q are exclusive.

Fixes: 5e17b28f1e24 ("perf probe: Add --quiet option to suppress output result message")
Signed-off-by: Yang Jihong <yangjihong1@xxxxxxxxxx>
---
tools/perf/builtin-probe.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index 2ae50fc9e597..ed73d0b89ca2 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -612,6 +612,15 @@ __cmd_probe(int argc, const char **argv)

argc = parse_options(argc, argv, options, probe_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
+
+ if (quiet) {
+ if (verbose != 0) {
+ pr_err(" Error: -v and -q are exclusive.\n");
+ return -EINVAL;
+ }
+ verbose = -1;
+ }
+
if (argc > 0) {
if (strcmp(argv[0], "-") == 0) {
usage_with_options_msg(probe_usage, options,
@@ -633,14 +642,6 @@ __cmd_probe(int argc, const char **argv)
if (ret)
return ret;

- if (quiet) {
- if (verbose != 0) {
- pr_err(" Error: -v and -q are exclusive.\n");
- return -EINVAL;
- }
- verbose = -1;
- }
-
if (probe_conf.max_probes == 0)
probe_conf.max_probes = MAX_PROBES;

--
2.30.GIT