HWPOISON: fix oops on ksm pages
authorHugh Dickins <hugh.dickins@tiscali.co.uk>
Tue, 13 Oct 2009 14:02:11 +0000 (15:02 +0100)
committerAndi Kleen <ak@linux.intel.com>
Mon, 19 Oct 2009 05:29:20 +0000 (07:29 +0200)
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>
mm/memory-failure.c

index e17ec3f1c63718ca2b5f5ad726a9cc6f4328d7f8..e354b9f2f389d46224f41c07cf5dd004807400f9 100644 (file)
@@ -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;
 
        /*