From 6bbbec801d31ec58b150dd93dc7314ade516ba2a Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 27 Jan 2011 23:12:05 -0500 Subject: [PATCH] --- yaml --- r: 234485 b: refs/heads/master c: 55719274188f13cff9e3bd11fdd4c0e7617cd03d h: refs/heads/master i: 234483: 2613c20629d68076b085dba632787810967864d9 v: v3 --- [refs] | 2 +- trunk/kernel/trace/trace_events_filter.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 2c3f79578ea3..e81f19f390ff 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 61e9dea20e1ada886cc49a9ec6fe3c6ac0de7324 +refs/heads/master: 55719274188f13cff9e3bd11fdd4c0e7617cd03d diff --git a/trunk/kernel/trace/trace_events_filter.c b/trunk/kernel/trace/trace_events_filter.c index 10390491b6d0..0a3e0502b507 100644 --- a/trunk/kernel/trace/trace_events_filter.c +++ b/trunk/kernel/trace/trace_events_filter.c @@ -426,9 +426,15 @@ int filter_match_preds(struct event_filter *filter, void *rec) pred->parent, &move); continue; case MOVE_UP_FROM_LEFT: - /* Check for short circuits */ - if ((match && pred->op == OP_OR) || - (!match && pred->op == OP_AND)) { + /* + * Check for short circuits. + * + * Optimization: !!match == (pred->op == OP_OR) + * is the same as: + * if ((match && pred->op == OP_OR) || + * (!match && pred->op == OP_AND)) + */ + if (!!match == (pred->op == OP_OR)) { if (pred == root) break; pred = get_pred_parent(pred, preds,