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>
This commit is contained in:
Hugh Dickins 2009-10-13 15:02:11 +01:00 committed by Andi Kleen
parent 4779cb31c0
commit 01e00f880c
1 changed files with 2 additions and 1 deletions

View 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;
/*