ALSA: ice1724 - Fix ESI Maya44 capture source control
[safe/jmp/linux-2.6] / drivers / oprofile / buffer_sync.c
index c3ea5fa..a9352b2 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/fs.h>
 #include <linux/oprofile.h>
 #include <linux/sched.h>
+#include <linux/gfp.h>
 
 #include "oprofile_stats.h"
 #include "event_buffer.h"
@@ -154,6 +155,9 @@ int sync_start(void)
 {
        int err;
 
+       if (!zalloc_cpumask_var(&marked_cpus, GFP_KERNEL))
+               return -ENOMEM;
+
        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 __exit 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