aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/trace/trace_events_filter.c7
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);