Re: [PATCH v1] mm/madvise: pass return code of memory_failure() to userspace

From: Vlastimil Babka
Date: Wed Jan 27 2016 - 08:59:20 EST


[CC += linux-api, linux-man]

On 01/22/2016 09:27 AM, Naoya Horiguchi wrote:
> Currently the return value of memory_failure() is not passed to userspace, which
> 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 MADV_SOFT_OFFLINE case.
>
> Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
> ---
> mm/madvise.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git v4.4-mmotm-2016-01-20-16-10/mm/madvise.c v4.4-mmotm-2016-01-20-16-10_patched/mm/madvise.c
> index f56825b..6a77114 100644
> --- v4.4-mmotm-2016-01-20-16-10/mm/madvise.c
> +++ v4.4-mmotm-2016-01-20-16-10_patched/mm/madvise.c
> @@ -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;

Can you explain what madvise can newly return for MADV_HWPOISON in which
situations, for the purposes of updated man page?

Thanks,
Vlastimil

> }
> return 0;
> }
>