]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/tracepoint.c
Merge branch 'oprofile-for-tip' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-omap-h63xx.git] / kernel / tracepoint.c
index f2b7c28a4708f525bd03a86fc053b614869f9599..af8c85664882c992d962c0ff8809f889ccadd65d 100644 (file)
@@ -131,6 +131,9 @@ tracepoint_entry_remove_probe(struct tracepoint_entry *entry, void *probe)
 
        old = entry->funcs;
 
+       if (!old)
+               return NULL;
+
        debug_print_probes(entry);
        /* (N -> M), (N > 1, M >= 0) probes */
        for (nr_probes = 0; old[nr_probes]; nr_probes++) {
@@ -388,6 +391,11 @@ int tracepoint_probe_unregister(const char *name, void *probe)
        if (entry->rcu_pending)
                rcu_barrier_sched();
        old = tracepoint_entry_remove_probe(entry, probe);
+       if (!old) {
+               printk(KERN_WARNING "Warning: Trying to unregister a probe"
+                                   "that doesn't exist\n");
+               goto end;
+       }
        mutex_unlock(&tracepoints_mutex);
        tracepoint_update_probes();             /* may update entry */
        mutex_lock(&tracepoints_mutex);