1
0
Files
linux/mm
Hugh Dickins a3e8cc643d mm: fix possible cause of a page_mapped BUG
Robert Swiecki reported a BUG_ON(page_mapped) from a fuzzer, punching
a hole with madvise(,, MADV_REMOVE).  That path is under mutex, and
cannot be explained by lack of serialization in unmap_mapping_range().

Reviewing the code, I found one place where vm_truncate_count handling
should have been updated, when I switched at the last minute from one
way of managing the restart_addr to another: mremap move changes the
virtual addresses, so it ought to adjust the restart_addr.

But rather than exporting the notion of restart_addr from memory.c, or
converting to restart_pgoff throughout, simply reset vm_truncate_count
to 0 to force a rescan if mremap move races with preempted truncation.

We have no confirmation that this fixes Robert's BUG,
but it is a fix that's worth making anyway.

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-02-23 21:55:06 -08:00
..
2011-01-13 17:32:49 -08:00
2011-01-13 17:32:42 -08:00
2010-03-24 16:31:21 -07:00
2011-01-13 17:32:46 -08:00
2010-05-21 18:31:21 -04:00
2011-01-13 17:32:41 -08:00
2010-05-25 08:07:00 -07:00
2011-01-07 17:50:26 +11:00
2011-01-15 13:28:36 +02:00
2011-01-13 17:32:43 -08:00
2011-01-13 17:32:41 -08:00
2011-01-17 14:42:34 -08:00
2011-01-13 17:32:41 -08:00
2011-01-20 17:02:06 -08:00
2011-01-13 17:32:43 -08:00