The following commit has been merged in the linux branch: commit 7456b0405d8fc063c49628f969cdb23be060fc80 Author: Wu Fengguang fengguang.wu@intel.com Date: Mon Oct 19 08:15:01 2009 +0200
HWPOISON: fix invalid page count in printk output
The madvise injector already holds a reference when passing in a page to the memory-failure code. The code corrects for this additional reference for its checks, but the final printk output didn't. Fix that.
Signed-off-by: Wu Fengguang fengguang.wu@intel.com Signed-off-by: Andi Kleen ak@linux.intel.com
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index e354b9f..dacc641 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -613,13 +613,16 @@ static int page_action(struct page_state *ps, struct page *p, unsigned long pfn, int ref) { int result; + int count;
result = ps->action(p, pfn); action_result(pfn, ps->msg, result); - if (page_count(p) != 1 + ref) + + count = page_count(p) - 1 - ref; + if (count != 0) printk(KERN_ERR "MCE %#lx: %s page still referenced by %d users\n", - pfn, ps->msg, page_count(p) - 1); + pfn, ps->msg, count);
/* Could do more checks here if page looks ok */ /*