markers: fix unchecked format
authorLai Jiangshan <laijs@cn.fujitsu.com>
Wed, 8 Oct 2008 02:23:36 +0000 (10:23 +0800)
committerIngo Molnar <mingo@elte.hu>
Tue, 14 Oct 2008 08:38:42 +0000 (10:38 +0200)
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>
kernel/marker.c

index 05a2577..3b75d0e 100644 (file)
@@ -653,11 +653,17 @@ int marker_probe_register(const char *name, const char *format,
        entry = get_marker(name);
        if (!entry) {
                entry = add_marker(name, format);
-               if (IS_ERR(entry)) {
+               if (IS_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,
         * make sure it's executed now.