From a1b67e1869163ff6c300d359cc1726416ea4efda Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Mon, 11 Mar 2019 11:42:47 +0900 Subject: [PATCH] Revert "mm: introduce pte_spinlock for FAULT_FLAG_SPECULATIVE" This reverts commit 1d0d2c5e715af2dc30955778dda2dd2280631148. Bug: 128240262 Change-Id: Ie3d9a7f340ae93ef13475c41cbcb2b52f2ac720c Signed-off-by: Minchan Kim [dereference23: Forward port to msm-5.4] Signed-off-by: Alexander Winkowski --- mm/memory.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 1eb1ab086a06..9a091ca4aa0f 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2208,13 +2208,6 @@ int apply_to_page_range(struct mm_struct *mm, unsigned long addr, } EXPORT_SYMBOL_GPL(apply_to_page_range); -static inline bool pte_spinlock(struct vm_fault *vmf) -{ - vmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd); - spin_lock(vmf->ptl); - return true; -} - static inline bool pte_map_lock(struct vm_fault *vmf) { vmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd, @@ -3917,8 +3910,8 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) * validation through pte_unmap_same(). It's of NUMA type but * the pfn may be screwed if the read is non atomic. */ - if (!pte_spinlock(vmf)) - return VM_FAULT_RETRY; + vmf->ptl = pte_lockptr(vma->vm_mm, vmf->pmd); + spin_lock(vmf->ptl); if (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) { pte_unmap_unlock(vmf->pte, vmf->ptl); goto out; @@ -4111,8 +4104,8 @@ static vm_fault_t handle_pte_fault(struct vm_fault *vmf) if (pte_protnone(vmf->orig_pte) && vma_is_accessible(vmf->vma)) return do_numa_page(vmf); - if (!pte_spinlock(vmf)) - return VM_FAULT_RETRY; + vmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd); + spin_lock(vmf->ptl); entry = vmf->orig_pte; if (unlikely(!pte_same(*vmf->pte, entry))) goto unlock;