The following commit has been merged in the linux branch: commit 01e00f880ca700376e1845cf7a2524ebe68e47d6 Author: Hugh Dickins hugh.dickins@tiscali.co.uk Date: Tue Oct 13 15:02:11 2009 +0100
HWPOISON: fix oops on ksm pages
Memory failure on a KSM page currently oopses on its NULL anon_vma in page_lock_anon_vma(): that may not be much worse than the consequence of ignoring it, but it is better to be consistent with how ZERO_PAGE and hugetlb pages and other awkward cases are treated. Just skip it.
Signed-off-by: Hugh Dickins hugh.dickins@tiscali.co.uk Signed-off-by: Andi Kleen ak@linux.intel.com
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index e17ec3f..e354b9f 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -35,6 +35,7 @@ #include <linux/mm.h> #include <linux/page-flags.h> #include <linux/sched.h> +#include <linux/ksm.h> #include <linux/rmap.h> #include <linux/pagemap.h> #include <linux/swap.h> @@ -644,7 +645,7 @@ static void hwpoison_user_mappings(struct page *p, unsigned long pfn, int i; int kill = 1;
- if (PageReserved(p) || PageCompound(p) || PageSlab(p)) + if (PageReserved(p) || PageCompound(p) || PageSlab(p) || PageKsm(p)) return;
/*