diff options
author | Mel Gorman <mgorman@suse.de> | 2014-10-02 19:47:41 +0100 |
---|---|---|
committer | Jiri Slaby <jslaby@suse.cz> | 2014-10-13 16:09:18 +0200 |
commit | 942c63742e91e10f3af9a1bdc932a52d63b6450e (patch) | |
tree | 6016f65f09704620fc474b8122d87edcd9155a7a /drivers/md | |
parent | 07b5661fe33df525931853f6869f7f5fd68d291e (diff) |
mm: migrate: Close race between migration completion and mprotect
commit d3cb8bf6081b8b7a2dabb1264fe968fd870fa595 upstream.
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]
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>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'drivers/md')
0 files changed, 0 insertions, 0 deletions