On 2022/4/8 21:53, Naoya Horiguchi wrote: > From: Naoya Horiguchi <naoya.horiguchi@xxxxxxx> > > In already hwpoisoned case, memory_failure() is supposed to return with > releasing the page refcount taken for error handling. But currently the > refcount is not released when called with MF_COUNT_INCREASED, which > makes page refcount inconsistent. This should be rare and non-critical, > but it might be inconvenient in testing (unpoison doesn't work). IMHO, this issue will lead to memoryleak as page isn't freed even owner process is killed. So we might need a Fixes tag? Anyway, this patch looks good to me. Thanks! Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > > Suggested-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > Signed-off-by: Naoya Horiguchi <naoya.horiguchi@xxxxxxx> > --- > mm/memory-failure.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 2020944398c9..b2e32cdc3823 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -1811,6 +1811,8 @@ int memory_failure(unsigned long pfn, int flags) > res = -EHWPOISON; > if (flags & MF_ACTION_REQUIRED) > res = kill_accessing_process(current, pfn, flags); > + if (flags & MF_COUNT_INCREASED) > + put_page(p); > goto unlock_mutex; > } > >