mmap locking API: use coccinelle to convert mmap_sem rwsem call sites
[linux-2.6-microblaze.git] / arch / microblaze / mm / fault.c
index 77dabc9..952ab61 100644 (file)
@@ -136,12 +136,12 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
         * source.  If this is invalid we can skip the address space check,
         * thus avoiding the deadlock.
         */
-       if (unlikely(!down_read_trylock(&mm->mmap_sem))) {
+       if (unlikely(!mmap_read_trylock(mm))) {
                if (kernel_mode(regs) && !search_exception_tables(regs->pc))
                        goto bad_area_nosemaphore;
 
 retry:
-               down_read(&mm->mmap_sem);
+               mmap_read_lock(mm);
        }
 
        vma = find_vma(mm, address);
@@ -247,7 +247,7 @@ good_area:
                }
        }
 
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
 
        /*
         * keep track of tlb+htab misses that are good addrs but
@@ -258,7 +258,7 @@ good_area:
        return;
 
 bad_area:
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
 
 bad_area_nosemaphore:
        pte_errors++;
@@ -277,7 +277,7 @@ bad_area_nosemaphore:
  * us unable to handle the page fault gracefully.
  */
 out_of_memory:
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
        if (!user_mode(regs))
                bad_page_fault(regs, address, SIGKILL);
        else
@@ -285,7 +285,7 @@ out_of_memory:
        return;
 
 do_sigbus:
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
        if (user_mode(regs)) {
                force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address);
                return;