HWPOISON: avoid grabbing the page count multiple times during madvise injection
authorWu Fengguang <fengguang.wu@intel.com>
Wed, 16 Dec 2009 11:19:57 +0000 (12:19 +0100)
committerAndi Kleen <ak@linux.intel.com>
Wed, 16 Dec 2009 11:19:57 +0000 (12:19 +0100)
If page is double referenced in madvise_hwpoison() and __memory_failure(),
remove_mapping() will fail because it expects page_count=2. Fix it by
not grabbing extra page count in __memory_failure().

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
mm/madvise.c
mm/memory-failure.c

index 35b1479..18970ae 100644 (file)
@@ -238,7 +238,6 @@ static int madvise_hwpoison(unsigned long start, unsigned long end)
                       page_to_pfn(p), start);
                /* Ignore return value for now */
                __memory_failure(page_to_pfn(p), 0, 1);
-               put_page(p);
        }
        return ret;
 }
Simple merge