]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/cell/spufs/sputrace.c
Linux Kernel Markers: support multiple probes
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / cell / spufs / sputrace.c
index 2b1953f6f12e0a7bdab67267fd4ac7b6f8f6e7d8..01974f7776e184d798d33cb2728dc5c610cad368 100644 (file)
@@ -146,34 +146,28 @@ static void sputrace_log_item(const char *name, struct spu_context *ctx,
        wake_up(&sputrace_wait);
 }
 
-static void spu_context_event(const struct marker *mdata,
-               void *private, const char *format, ...)
+static void spu_context_event(void *probe_private, void *call_data,
+               const char *format, va_list *args)
 {
-       struct spu_probe *p = mdata->private;
-       va_list ap;
+       struct spu_probe *p = probe_private;
        struct spu_context *ctx;
        struct spu *spu;
 
-       va_start(ap, format);
-       ctx = va_arg(ap, struct spu_context *);
-       spu = va_arg(ap, struct spu *);
+       ctx = va_arg(*args, struct spu_context *);
+       spu = va_arg(*args, struct spu *);
 
        sputrace_log_item(p->name, ctx, spu);
-       va_end(ap);
 }
 
-static void spu_context_nospu_event(const struct marker *mdata,
-               void *private, const char *format, ...)
+static void spu_context_nospu_event(void *probe_private, void *call_data,
+               const char *format, va_list *args)
 {
-       struct spu_probe *p = mdata->private;
-       va_list ap;
+       struct spu_probe *p = probe_private;
        struct spu_context *ctx;
 
-       va_start(ap, format);
-       ctx = va_arg(ap, struct spu_context *);
+       ctx = va_arg(*args, struct spu_context *);
 
        sputrace_log_item(p->name, ctx, NULL);
-       va_end(ap);
 }
 
 struct spu_probe spu_probes[] = {
@@ -219,10 +213,6 @@ static int __init sputrace_init(void)
                if (error)
                        printk(KERN_INFO "Unable to register probe %s\n",
                                        p->name);
-
-               error = marker_arm(p->name);
-               if (error)
-                       printk(KERN_INFO "Unable to arm probe %s\n", p->name);
        }
 
        return 0;
@@ -238,7 +228,8 @@ static void __exit sputrace_exit(void)
        int i;
 
        for (i = 0; i < ARRAY_SIZE(spu_probes); i++)
-               marker_probe_unregister(spu_probes[i].name);
+               marker_probe_unregister(spu_probes[i].name,
+                       spu_probes[i].probe_func, &spu_probes[i]);
 
        remove_proc_entry("sputrace", NULL);
        kfree(sputrace_log);