diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 11ae0dacaae70ebf9c4dd84d08e0c2cc43ebb94a..55c175f57223c634ffa9230f1bd66f4f2a81f0a5 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1379,6 +1379,8 @@ int memory_failure(unsigned long pfn, int flags) pr_err("Memory failure: %#lx: already hardware poisoned\n", pfn); res = -EHWPOISON; + if (flags & MF_COUNT_INCREASED) + put_page(p); goto unlock_mutex; }