From 6dde4fd95a01b11bf23377287c482d529bb2cab6 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 16 Sep 2009 11:50:08 +0200 Subject: [PATCH] --- yaml --- r: 165727 b: refs/heads/master c: a3b947eacfe783df4ca0fe53ef8a764eebc2d0d6 h: refs/heads/master i: 165725: e3cfff24e0e4da523de11007f8bbf706ad666cae 165723: 0779c0253fccef35613f4a3cff2089f4879f2370 165719: a5513288ac0c235dbb8423daf6f663cbb960df0f 165711: e62e90efd78670ef73b65b09767f722f2423a49a 165695: 97c7950f6dff9f79a587ac350dbfd5a51e78ade0 v: v3 --- [refs] | 2 +- trunk/mm/memory.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8b7208bb8526..f85470a582e5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d1737fdbec7f90edc52dd0c5c3767457f28e78d8 +refs/heads/master: a3b947eacfe783df4ca0fe53ef8a764eebc2d0d6 diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index 02bae2d540d4..44ea41196c13 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -2711,6 +2711,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE))) return ret; + if (unlikely(PageHWPoison(vmf.page))) { + if (ret & VM_FAULT_LOCKED) + unlock_page(vmf.page); + return VM_FAULT_HWPOISON; + } + /* * For consistency in subsequent calls, make the faulted page always * locked.