瀏覽代碼

ftrace: Move record update for normal and modules into a separate function

The updating of a function record is moved to a single function. This will allow
us to add specific changes in one location for both modules and kernel
functions.

Later patches will determine if the function record itself needs to be updated
(which enables the mcount caller), or just the ftrace_ops needs the update.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Steven Rostedt 14 年之前
父節點
當前提交
996e87be7f
共有 1 個文件被更改,包括 11 次插入8 次删除
  1. 11 8
      kernel/trace/ftrace.c

+ 11 - 8
kernel/trace/ftrace.c

@@ -1743,6 +1743,15 @@ static int ftrace_match(char *str, char *regex, int len, int type)
 	return matched;
 	return matched;
 }
 }
 
 
+static void
+update_record(struct dyn_ftrace *rec, unsigned long flag, int not)
+{
+	if (not)
+		rec->flags &= ~flag;
+	else
+		rec->flags |= flag;
+}
+
 static int
 static int
 ftrace_match_record(struct dyn_ftrace *rec, char *regex, int len, int type)
 ftrace_match_record(struct dyn_ftrace *rec, char *regex, int len, int type)
 {
 {
@@ -1772,10 +1781,7 @@ static int ftrace_match_records(char *buff, int len, int enable)
 	do_for_each_ftrace_rec(pg, rec) {
 	do_for_each_ftrace_rec(pg, rec) {
 
 
 		if (ftrace_match_record(rec, search, search_len, type)) {
 		if (ftrace_match_record(rec, search, search_len, type)) {
-			if (not)
-				rec->flags &= ~flag;
-			else
-				rec->flags |= flag;
+			update_record(rec, flag, not);
 			found = 1;
 			found = 1;
 		}
 		}
 		/*
 		/*
@@ -1846,10 +1852,7 @@ static int ftrace_match_module_records(char *buff, char *mod, int enable)
 
 
 		if (ftrace_match_module_record(rec, mod,
 		if (ftrace_match_module_record(rec, mod,
 					       search, search_len, type)) {
 					       search, search_len, type)) {
-			if (not)
-				rec->flags &= ~flag;
-			else
-				rec->flags |= flag;
+			update_record(rec, flag, not);
 			found = 1;
 			found = 1;
 		}
 		}
 		if (enable && (rec->flags & FTRACE_FL_FILTER))
 		if (enable && (rec->flags & FTRACE_FL_FILTER))