]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/mmap.c
ksm: fix deadlock with munlock in exit_mmap
[mv-sheeva.git] / mm / mmap.c
index 26892e346d8ffab12e53f9f14b4c76bcb8f3b5d8..ffd6c6c9bcf4dbc30f2af472574e56b2326d7488 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -27,8 +27,9 @@
 #include <linux/mount.h>
 #include <linux/mempolicy.h>
 #include <linux/rmap.h>
+#include <linux/ksm.h>
 #include <linux/mmu_notifier.h>
-#include <linux/perf_counter.h>
+#include <linux/perf_event.h>
 
 #include <asm/uaccess.h>
 #include <asm/cacheflush.h>
@@ -1220,7 +1221,7 @@ munmap_back:
        if (correct_wcount)
                atomic_inc(&inode->i_writecount);
 out:
-       perf_counter_mmap(vma);
+       perf_event_mmap(vma);
 
        mm->total_vm += len >> PAGE_SHIFT;
        vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
@@ -2111,6 +2112,7 @@ void exit_mmap(struct mm_struct *mm)
        /* Use -1 here to ensure all VMAs in the mm are unmapped */
        end = unmap_vmas(&tlb, vma, 0, -1, &nr_accounted, NULL);
        vm_unacct_memory(nr_accounted);
+
        free_pgtables(tlb, vma, FIRST_USER_ADDRESS, 0);
        tlb_finish_mmu(tlb, 0, end);
 
@@ -2308,7 +2310,7 @@ int install_special_mapping(struct mm_struct *mm,
 
        mm->total_vm += len >> PAGE_SHIFT;
 
-       perf_counter_mmap(vma);
+       perf_event_mmap(vma);
 
        return 0;
 }