diff options
-rw-r--r-- | tools/perf/builtin-script.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 5b1543f42290..2d8cb1d1682c 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
@@ -149,6 +149,7 @@ static struct { | |||
149 | unsigned int print_ip_opts; | 149 | unsigned int print_ip_opts; |
150 | u64 fields; | 150 | u64 fields; |
151 | u64 invalid_fields; | 151 | u64 invalid_fields; |
152 | u64 user_set_fields; | ||
152 | } output[OUTPUT_TYPE_MAX] = { | 153 | } output[OUTPUT_TYPE_MAX] = { |
153 | 154 | ||
154 | [PERF_TYPE_HARDWARE] = { | 155 | [PERF_TYPE_HARDWARE] = { |
@@ -345,7 +346,7 @@ static int perf_evsel__do_check_stype(struct perf_evsel *evsel, | |||
345 | if (attr->sample_type & sample_type) | 346 | if (attr->sample_type & sample_type) |
346 | return 0; | 347 | return 0; |
347 | 348 | ||
348 | if (output[type].user_set) { | 349 | if (output[type].user_set_fields & field) { |
349 | if (allow_user_set) | 350 | if (allow_user_set) |
350 | return 0; | 351 | return 0; |
351 | evname = perf_evsel__name(evsel); | 352 | evname = perf_evsel__name(evsel); |
@@ -2632,10 +2633,13 @@ parse: | |||
2632 | pr_warning("\'%s\' not valid for %s events. Ignoring.\n", | 2633 | pr_warning("\'%s\' not valid for %s events. Ignoring.\n", |
2633 | all_output_options[i].str, event_type(j)); | 2634 | all_output_options[i].str, event_type(j)); |
2634 | } else { | 2635 | } else { |
2635 | if (change == REMOVE) | 2636 | if (change == REMOVE) { |
2636 | output[j].fields &= ~all_output_options[i].field; | 2637 | output[j].fields &= ~all_output_options[i].field; |
2637 | else | 2638 | output[j].user_set_fields &= ~all_output_options[i].field; |
2639 | } else { | ||
2638 | output[j].fields |= all_output_options[i].field; | 2640 | output[j].fields |= all_output_options[i].field; |
2641 | output[j].user_set_fields |= all_output_options[i].field; | ||
2642 | } | ||
2639 | output[j].user_set = true; | 2643 | output[j].user_set = true; |
2640 | output[j].wildcard_set = true; | 2644 | output[j].wildcard_set = true; |
2641 | } | 2645 | } |