diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 54e93c679cec1f2379006c9a86f37f563186fad4..77f29dd9e5c9deb0a8217fbd0f7c97340551e43f 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1094,7 +1094,7 @@ static int memory_failure_hugetlb(unsigned long pfn, int flags) if (TestSetPageHWPoison(head)) { pr_err("Memory failure: %#lx: already hardware poisoned\n", pfn); - return 0; + return -EHWPOISON; } num_poisoned_pages_inc(); @@ -1286,6 +1286,7 @@ int memory_failure(unsigned long pfn, int flags) if (TestSetPageHWPoison(p)) { pr_err("Memory failure: %#lx: already hardware poisoned\n", pfn); + res = -EHWPOISON; goto unlock_mutex; }