https://github.com/torvalds/linux
Revision d3cb8bf6081b8b7a2dabb1264fe968fd870fa595 authored by Mel Gorman on 02 October 2014, 18:47:41 UTC, committed by Linus Torvalds on 02 October 2014, 18:57:18 UTC
A migration entry is marked as write if pte_write was true at the time the
entry was created. The VMA protections are not double checked when migration
entries are being removed as mprotect marks write-migration-entries as
read. It means that potentially we take a spurious fault to mark PTEs write
again but it's straight-forward. However, there is a race between write
migrations being marked read and migrations finishing. This potentially
allows a PTE to be write that should have been read. Close this race by
double checking the VMA permissions using maybe_mkwrite when migration
completes.

[torvalds@linux-foundation.org: use maybe_mkwrite]
Cc: stable@vger.kernel.org
Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 50dddff
History
Tip revision: d3cb8bf6081b8b7a2dabb1264fe968fd870fa595 authored by Mel Gorman on 02 October 2014, 18:47:41 UTC
mm: migrate: Close race between migration completion and mprotect
Tip revision: d3cb8bf
File Mode Size
.gitignore -rw-r--r-- 14 bytes
IRQ-redir.txt -rw-r--r-- 2.5 KB
Makefile -rw-r--r-- 218 bytes
README -rw-r--r-- 1.2 KB
aliasing-test.c -rw-r--r-- 6.0 KB
aliasing.txt -rw-r--r-- 8.5 KB
efirtc.txt -rw-r--r-- 4.3 KB
err_inject.txt -rw-r--r-- 25.2 KB
fsys.txt -rw-r--r-- 11.8 KB
kvm.txt -rw-r--r-- 3.0 KB
mca.txt -rw-r--r-- 8.8 KB
paravirt_ops.txt -rw-r--r-- 6.2 KB
serial.txt -rw-r--r-- 6.3 KB
xen.txt -rw-r--r-- 5.5 KB

README

back to top