diff options
-rw-r--r-- | arch/x86/include/asm/pgtable.h | 2 | ||||
-rw-r--r-- | include/asm-generic/pgtable.h | 4 | ||||
-rw-r--r-- | mm/memory.c | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index a34c785c5a6..2d0a33bd297 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 e2bd73e8f9c..f4d4120e512 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 2ed2267439d..a40da698396 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 | } |
3152 | unlock: | 3152 | unlock: |
3153 | pte_unmap_unlock(pte, ptl); | 3153 | pte_unmap_unlock(pte, ptl); |