diff options
author | Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> | 2009-07-09 04:20:12 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-07-10 05:55:27 -0400 |
commit | c5cb183608167c744cb28bbd85884be5a4ce875d (patch) | |
tree | cce5d915673768ba0f2190920dcd7ee644a5c477 | |
parent | ddc1637af217dbd8bc51f30e6d24e84476a869a6 (diff) |
tracing/filter: Remove preds from struct event_subsystem
No need to save preds to event_subsystem, because it's not used.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Acked-by: Tom Zanussi <tzanussi@gmail.com>
Reviewed-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <4A55A83C.1030005@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | kernel/trace/trace_events_filter.c | 39 |
1 files changed, 6 insertions, 33 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 936c621bbf46..b9aae72d13db 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -420,17 +420,7 @@ EXPORT_SYMBOL_GPL(init_preds); | |||
420 | 420 | ||
421 | static void filter_free_subsystem_preds(struct event_subsystem *system) | 421 | static void filter_free_subsystem_preds(struct event_subsystem *system) |
422 | { | 422 | { |
423 | struct event_filter *filter = system->filter; | ||
424 | struct ftrace_event_call *call; | 423 | struct ftrace_event_call *call; |
425 | int i; | ||
426 | |||
427 | if (filter->n_preds) { | ||
428 | for (i = 0; i < filter->n_preds; i++) | ||
429 | filter_free_pred(filter->preds[i]); | ||
430 | kfree(filter->preds); | ||
431 | filter->preds = NULL; | ||
432 | filter->n_preds = 0; | ||
433 | } | ||
434 | 424 | ||
435 | list_for_each_entry(call, &ftrace_events, list) { | 425 | list_for_each_entry(call, &ftrace_events, list) { |
436 | if (!call->define_fields) | 426 | if (!call->define_fields) |
@@ -607,26 +597,9 @@ static int filter_add_subsystem_pred(struct filter_parse_state *ps, | |||
607 | struct filter_pred *pred, | 597 | struct filter_pred *pred, |
608 | char *filter_string) | 598 | char *filter_string) |
609 | { | 599 | { |
610 | struct event_filter *filter = system->filter; | ||
611 | struct ftrace_event_call *call; | 600 | struct ftrace_event_call *call; |
612 | int err = 0; | 601 | int err = 0; |
613 | 602 | ||
614 | if (!filter->preds) { | ||
615 | filter->preds = kzalloc(MAX_FILTER_PRED * sizeof(pred), | ||
616 | GFP_KERNEL); | ||
617 | |||
618 | if (!filter->preds) | ||
619 | return -ENOMEM; | ||
620 | } | ||
621 | |||
622 | if (filter->n_preds == MAX_FILTER_PRED) { | ||
623 | parse_error(ps, FILT_ERR_TOO_MANY_PREDS, 0); | ||
624 | return -ENOSPC; | ||
625 | } | ||
626 | |||
627 | filter->preds[filter->n_preds] = pred; | ||
628 | filter->n_preds++; | ||
629 | |||
630 | list_for_each_entry(call, &ftrace_events, list) { | 603 | list_for_each_entry(call, &ftrace_events, list) { |
631 | 604 | ||
632 | if (!call->define_fields) | 605 | if (!call->define_fields) |
@@ -1029,12 +1002,12 @@ static int replace_preds(struct event_subsystem *system, | |||
1029 | 1002 | ||
1030 | if (elt->op == OP_AND || elt->op == OP_OR) { | 1003 | if (elt->op == OP_AND || elt->op == OP_OR) { |
1031 | pred = create_logical_pred(elt->op); | 1004 | pred = create_logical_pred(elt->op); |
1032 | if (call) { | 1005 | if (call) |
1033 | err = filter_add_pred(ps, call, pred); | 1006 | err = filter_add_pred(ps, call, pred); |
1034 | filter_free_pred(pred); | 1007 | else |
1035 | } else | ||
1036 | err = filter_add_subsystem_pred(ps, system, | 1008 | err = filter_add_subsystem_pred(ps, system, |
1037 | pred, filter_string); | 1009 | pred, filter_string); |
1010 | filter_free_pred(pred); | ||
1038 | if (err) | 1011 | if (err) |
1039 | return err; | 1012 | return err; |
1040 | 1013 | ||
@@ -1048,12 +1021,12 @@ static int replace_preds(struct event_subsystem *system, | |||
1048 | } | 1021 | } |
1049 | 1022 | ||
1050 | pred = create_pred(elt->op, operand1, operand2); | 1023 | pred = create_pred(elt->op, operand1, operand2); |
1051 | if (call) { | 1024 | if (call) |
1052 | err = filter_add_pred(ps, call, pred); | 1025 | err = filter_add_pred(ps, call, pred); |
1053 | filter_free_pred(pred); | 1026 | else |
1054 | } else | ||
1055 | err = filter_add_subsystem_pred(ps, system, pred, | 1027 | err = filter_add_subsystem_pred(ps, system, pred, |
1056 | filter_string); | 1028 | filter_string); |
1029 | filter_free_pred(pred); | ||
1057 | if (err) | 1030 | if (err) |
1058 | return err; | 1031 | return err; |
1059 | 1032 | ||