diff options
-rw-r--r-- | kernel/trace/trace_events_filter.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 36d40104b17f..7275f0310ed8 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -383,9 +383,14 @@ int filter_match_preds(struct event_filter *filter, void *rec) | |||
383 | int match, top = 0, val1 = 0, val2 = 0; | 383 | int match, top = 0, val1 = 0, val2 = 0; |
384 | int stack[MAX_FILTER_PRED]; | 384 | int stack[MAX_FILTER_PRED]; |
385 | struct filter_pred *pred; | 385 | struct filter_pred *pred; |
386 | int n_preds = ACCESS_ONCE(filter->n_preds); | ||
386 | int i; | 387 | int i; |
387 | 388 | ||
388 | for (i = 0; i < filter->n_preds; i++) { | 389 | /* no filter is considered a match */ |
390 | if (!n_preds) | ||
391 | return 1; | ||
392 | |||
393 | for (i = 0; i < n_preds; i++) { | ||
389 | pred = filter->preds[i]; | 394 | pred = filter->preds[i]; |
390 | if (!pred->pop_n) { | 395 | if (!pred->pop_n) { |
391 | match = pred->fn(pred, rec, val1, val2); | 396 | match = pred->fn(pred, rec, val1, val2); |