Use new try_vma_locked_page_fault() helper to simplify code.
No functional change intended.

Signed-off-by: Kefeng Wang <wangkefeng.w...@huawei.com>
---
 arch/s390/mm/fault.c | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 40a71063949b..97e511690352 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -362,6 +362,7 @@ static inline vm_fault_t do_exception(struct pt_regs *regs, 
int access)
        struct task_struct *tsk;
        struct mm_struct *mm;
        struct vm_area_struct *vma;
+       struct vm_locked_fault vmlf;
        enum fault_type type;
        unsigned long address;
        unsigned int flags;
@@ -407,31 +408,19 @@ static inline vm_fault_t do_exception(struct pt_regs 
*regs, int access)
                access = VM_WRITE;
        if (access == VM_WRITE)
                flags |= FAULT_FLAG_WRITE;
-#ifdef CONFIG_PER_VMA_LOCK
-       if (!(flags & FAULT_FLAG_USER))
-               goto lock_mmap;
-       vma = lock_vma_under_rcu(mm, address);
-       if (!vma)
-               goto lock_mmap;
-       if (!(vma->vm_flags & access)) {
-               vma_end_read(vma);
+
+       VM_LOCKED_FAULT_INIT(vmlf, mm, address, flags, access, regs, 0);
+       if (try_vma_locked_page_fault(&vmlf, &fault))
                goto lock_mmap;
-       }
-       fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, 
regs);
-       if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED)))
-               vma_end_read(vma);
-       if (!(fault & VM_FAULT_RETRY)) {
-               count_vm_vma_lock_event(VMA_LOCK_SUCCESS);
+       else if (!(fault | VM_FAULT_RETRY))
                goto out;
-       }
-       count_vm_vma_lock_event(VMA_LOCK_RETRY);
+
        /* Quick path to respond to signals */
        if (fault_signal_pending(fault, regs)) {
                fault = VM_FAULT_SIGNAL;
                goto out;
        }
 lock_mmap:
-#endif /* CONFIG_PER_VMA_LOCK */
        mmap_read_lock(mm);
 
        gmap = NULL;
-- 
2.27.0

Reply via email to