]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/oprofile/event_buffer.c
Merge branch 'x86/cpu' into x86/x2apic
[linux-2.6-omap-h63xx.git] / drivers / oprofile / event_buffer.c
index 00e937e9240e5b9196de3a6faf08b925842595e6..8d692a5c8e73f730fa5a5417f73e149768627bc1 100644 (file)
@@ -70,11 +70,12 @@ void wake_up_buffer_waiter(void)
 int alloc_event_buffer(void)
 {
        int err = -ENOMEM;
+       unsigned long flags;
 
-       spin_lock(&oprofilefs_lock);
+       spin_lock_irqsave(&oprofilefs_lock, flags);
        buffer_size = fs_buffer_size;
        buffer_watershed = fs_buffer_watershed;
-       spin_unlock(&oprofilefs_lock);
+       spin_unlock_irqrestore(&oprofilefs_lock, flags);
  
        if (buffer_watershed >= buffer_size)
                return -EINVAL;
@@ -92,6 +93,8 @@ out:
 void free_event_buffer(void)
 {
        vfree(event_buffer);
+
+       event_buffer = NULL;
 }