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

Message ID 20221220035702.188413-4-yangjihong1@huawei.com
State New
Headers
Series Fixes for debug variables |

Commit Message

Yang Jihong Dec. 20, 2022, 3:57 a.m. UTC
  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@huawei.com>
---
 tools/perf/builtin-probe.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)
  

Comments

Adrian Hunter Dec. 20, 2022, 11:12 a.m. UTC | #1
On 20/12/22 05:57, Yang Jihong wrote:
> 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@huawei.com>

Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  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;
>
  

Patch

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;