Merge branch 'drm-radeon-kms' of git://git.kernel.org/pub/scm/linux/kernel/git/airlie...
[pandora-kernel.git] / drivers / oprofile / buffer_sync.c
index 2c9aa49..8574622 100644 (file)
@@ -154,6 +154,10 @@ int sync_start(void)
 {
        int err;
 
+       if (!alloc_cpumask_var(&marked_cpus, GFP_KERNEL))
+               return -ENOMEM;
+       cpumask_clear(marked_cpus);
+
        start_cpu_work();
 
        err = task_handoff_register(&task_free_nb);
@@ -179,6 +183,7 @@ out2:
        task_handoff_unregister(&task_free_nb);
 out1:
        end_sync();
+       free_cpumask_var(marked_cpus);
        goto out;
 }
 
@@ -190,6 +195,7 @@ void sync_stop(void)
        profile_event_unregister(PROFILE_TASK_EXIT, &task_exit_nb);
        task_handoff_unregister(&task_free_nb);
        end_sync();
+       free_cpumask_var(marked_cpus);
 }
 
 
@@ -565,20 +571,6 @@ void sync_buffer(int cpu)
        mutex_unlock(&buffer_mutex);
 }
 
-int __init buffer_sync_init(void)
-{
-       if (!alloc_cpumask_var(&marked_cpus, GFP_KERNEL))
-               return -ENOMEM;
-
-       cpumask_clear(marked_cpus);
-               return 0;
-}
-
-void buffer_sync_cleanup(void)
-{
-       free_cpumask_var(marked_cpus);
-}
-
 /* The function can be used to add a buffer worth of data directly to
  * the kernel buffer. The buffer is assumed to be a circular buffer.
  * Take the entries from index start and end at index end, wrapping