From 6c5a2db213ddc1c897c24f70a51bc15ad6ded1fb Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Tue, 20 Nov 2012 13:02:51 +0100 Subject: [PATCH] --- yaml --- r: 356162 b: refs/heads/master c: 5e4bf1a55da976a5ed60901bb8801f1024ef9774 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/pgtable.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a03f1b61ae74..85cd6d91d715 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bbee3aec3472fc2ca10b6b1020aec84567ea25ce +refs/heads/master: 5e4bf1a55da976a5ed60901bb8801f1024ef9774 diff --git a/trunk/arch/x86/mm/pgtable.c b/trunk/arch/x86/mm/pgtable.c index 8573b83a63d0..8a828d773e58 100644 --- a/trunk/arch/x86/mm/pgtable.c +++ b/trunk/arch/x86/mm/pgtable.c @@ -328,7 +328,12 @@ int pmdp_set_access_flags(struct vm_area_struct *vma, if (changed && dirty) { *pmdp = entry; pmd_update_defer(vma->vm_mm, address, pmdp); - flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); + /* + * We had a write-protection fault here and changed the pmd + * to to more permissive. No need to flush the TLB for that, + * #PF is architecturally guaranteed to do that and in the + * worst-case we'll generate a spurious fault. + */ } return changed;