aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/pgtable.h2
-rw-r--r--include/asm-generic/pgtable.h4
-rw-r--r--mm/memory.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index a34c785c5a63..2d0a33bd2971 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -603,6 +603,8 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm,
603 pte_update(mm, addr, ptep); 603 pte_update(mm, addr, ptep);
604} 604}
605 605
606#define flush_tlb_fix_spurious_fault(vma, address)
607
606/* 608/*
607 * clone_pgd_range(pgd_t *dst, pgd_t *src, int count); 609 * clone_pgd_range(pgd_t *dst, pgd_t *src, int count);
608 * 610 *
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
index e2bd73e8f9c0..f4d4120e5128 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -129,6 +129,10 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
129#define move_pte(pte, prot, old_addr, new_addr) (pte) 129#define move_pte(pte, prot, old_addr, new_addr) (pte)
130#endif 130#endif
131 131
132#ifndef flush_tlb_fix_spurious_fault
133#define flush_tlb_fix_spurious_fault(vma, address) flush_tlb_page(vma, address)
134#endif
135
132#ifndef pgprot_noncached 136#ifndef pgprot_noncached
133#define pgprot_noncached(prot) (prot) 137#define pgprot_noncached(prot) (prot)
134#endif 138#endif
diff --git a/mm/memory.c b/mm/memory.c
index 2ed2267439df..a40da6983961 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3147,7 +3147,7 @@ static inline int handle_pte_fault(struct mm_struct *mm,
3147 * with threads. 3147 * with threads.
3148 */ 3148 */
3149 if (flags & FAULT_FLAG_WRITE) 3149 if (flags & FAULT_FLAG_WRITE)
3150 flush_tlb_page(vma, address); 3150 flush_tlb_fix_spurious_fault(vma, address);
3151 } 3151 }
3152unlock: 3152unlock:
3153 pte_unmap_unlock(pte, ptl); 3153 pte_unmap_unlock(pte, ptl);