From: Davidlohr Bueso <d...@stgolabs.net>

This becomes quite straightforward with the mmrange in place.

Signed-off-by: Davidlohr Bueso <dbu...@suse.de>
---
 arch/cris/mm/fault.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/cris/mm/fault.c b/arch/cris/mm/fault.c
index 16af16d77269..decc8f1fbc9d 100644
--- a/arch/cris/mm/fault.c
+++ b/arch/cris/mm/fault.c
@@ -122,7 +122,7 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
        if (user_mode(regs))
                flags |= FAULT_FLAG_USER;
 retry:
-       down_read(&mm->mmap_sem);
+       mm_read_lock(mm, &mmrange);
        vma = find_vma(mm, address);
        if (!vma)
                goto bad_area;
@@ -205,7 +205,7 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
                }
        }
 
-       up_read(&mm->mmap_sem);
+       mm_read_unlock(mm, &mmrange);
        return;
 
        /*
@@ -214,7 +214,7 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
         */
 
  bad_area:
-       up_read(&mm->mmap_sem);
+       mm_read_unlock(mm, &mmrange);
 
  bad_area_nosemaphore:
        DPG(show_registers(regs));
@@ -286,14 +286,14 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
         */
 
  out_of_memory:
-       up_read(&mm->mmap_sem);
+       mm_read_unlock(mm, &mmrange);
        if (!user_mode(regs))
                goto no_context;
        pagefault_out_of_memory();
        return;
 
  do_sigbus:
-       up_read(&mm->mmap_sem);
+       mm_read_unlock(mm, &mmrange);
 
        /*
         * Send a sigbus, regardless of whether we were in kernel
-- 
2.13.6

Reply via email to