Browse Source

markers: fix unchecked format

when the second, third... probe is registered, its format is
not checked, this patch fixes it.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Lai Jiangshan 16 years ago
parent
commit
48043bcdf8
1 changed files with 9 additions and 3 deletions
  1. 9 3
      kernel/marker.c

+ 9 - 3
kernel/marker.c

@@ -653,11 +653,17 @@ int marker_probe_register(const char *name, const char *format,
 	entry = get_marker(name);
 	entry = get_marker(name);
 	if (!entry) {
 	if (!entry) {
 		entry = add_marker(name, format);
 		entry = add_marker(name, format);
-		if (IS_ERR(entry)) {
+		if (IS_ERR(entry))
 			ret = PTR_ERR(entry);
 			ret = PTR_ERR(entry);
-			goto end;
-		}
+	} else if (format) {
+		if (!entry->format)
+			ret = marker_set_format(&entry, format);
+		else if (strcmp(entry->format, format))
+			ret = -EPERM;
 	}
 	}
+	if (ret)
+		goto end;
+
 	/*
 	/*
 	 * If we detect that a call_rcu is pending for this marker,
 	 * If we detect that a call_rcu is pending for this marker,
 	 * make sure it's executed now.
 	 * make sure it's executed now.