mm/madvise: pass return code of memory_failure() to userspace
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Tue, 15 Mar 2016 21:56:36 +0000 (14:56 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Mar 2016 23:55:16 +0000 (16:55 -0700)
Currently the return value of memory_failure() is not passed to
userspace when madvise(MADV_HWPOISON) is used.  This is inconvenient for
test programs that want to know the result of error handling.  So let's
return it to the caller as we already do in the MADV_SOFT_OFFLINE case.

Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Chen Gong <gong.chen@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/madvise.c

index f56825b6d2e103c920d2b21cfb56e316dcea9418..6a7711436c5bbead3f0d098bc6e89b00be6b64c6 100644 (file)
@@ -555,8 +555,9 @@ static int madvise_hwpoison(int bhv, unsigned long start, unsigned long end)
                }
                pr_info("Injecting memory failure for page %#lx at %#lx\n",
                       page_to_pfn(p), start);
-               /* Ignore return value for now */
-               memory_failure(page_to_pfn(p), 0, MF_COUNT_INCREASED);
+               ret = memory_failure(page_to_pfn(p), 0, MF_COUNT_INCREASED);
+               if (ret)
+                       return ret;
        }
        return 0;
 }