summaryrefslogtreecommitdiffstats
path: root/mm/rmap.c
diff options
context:
space:
mode:
authorKonstantin Khlebnikov <koct9i@gmail.com>2014-06-05 01:10:51 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-05 01:54:12 +0200
commit3d92860f979f725a9c10c2fc26c0415a4332adbf (patch)
treea4ecf8ab9a583f6fbdc8899eba63fdb3946088ac /mm/rmap.c
parentmm/process_vm_access: move config option into init/Kconfig (diff)
downloadlinux-3d92860f979f725a9c10c2fc26c0415a4332adbf.tar.xz
linux-3d92860f979f725a9c10c2fc26c0415a4332adbf.zip
mm/rmap.c: don't call mmu_notifier_invalidate_page() during munlock
In its munmap mode, try_to_unmap_one() searches other mlocked vmas, it never unmaps pages. There is no reason for invalidation because ptes are left unchanged. Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/rmap.c')
-rw-r--r--mm/rmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/rmap.c b/mm/rmap.c
index e375ce4bd93e..ab74290d185d 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1252,7 +1252,7 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
out_unmap:
pte_unmap_unlock(pte, ptl);
- if (ret != SWAP_FAIL)
+ if (ret != SWAP_FAIL && TTU_ACTION(flags) != TTU_MUNLOCK)
mmu_notifier_invalidate_page(mm, address);
out:
return ret;