From 3d7d2da2dea247e2b937468d831c80f9533c49ce Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 17 Dec 2008 15:05:36 -0500 Subject: [PATCH] --- yaml --- r: 121293 b: refs/heads/master c: ea3a6d6d60b2504c573fe3415f6617e8310c0236 h: refs/heads/master i: 121291: 26f082877fff96a19407130aa29c6600f96ecefb v: v3 --- [refs] | 2 +- trunk/kernel/trace/ftrace.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 94a80fba8dd4..a60b22c69cca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e05a43b744fb9518cbf8539a7ef33164ac60a70f +refs/heads/master: ea3a6d6d60b2504c573fe3415f6617e8310c0236 diff --git a/trunk/kernel/trace/ftrace.c b/trunk/kernel/trace/ftrace.c index a12f80efceaa..2f32969c09df 100644 --- a/trunk/kernel/trace/ftrace.c +++ b/trunk/kernel/trace/ftrace.c @@ -1047,6 +1047,13 @@ ftrace_match(unsigned char *buff, int len, int enable) int type = MATCH_FULL; unsigned long flag = enable ? FTRACE_FL_FILTER : FTRACE_FL_NOTRACE; unsigned i, match = 0, search_len = 0; + int not = 0; + + if (buff[0] == '!') { + not = 1; + buff++; + len--; + } for (i = 0; i < len; i++) { if (buff[i] == '*') { @@ -1100,8 +1107,12 @@ ftrace_match(unsigned char *buff, int len, int enable) matched = 1; break; } - if (matched) - rec->flags |= flag; + if (matched) { + if (not) + rec->flags &= ~flag; + else + rec->flags |= flag; + } } pg = pg->next; }