summaryrefslogtreecommitdiffstats
path: root/mm/memory-failure.c
diff options
context:
space:
mode:
authorMiaohe Lin <linmiaohe@huawei.com>2022-08-18 21:00:13 +0800
committerAndrew Morton <akpm@linux-foundation.org>2022-09-11 20:25:57 -0700
commit12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8 (patch)
treecf2124bc0866f51172337ab6a7f61fa31a738adc /mm/memory-failure.c
parent6bbabd041dfd4823c752940286656d404621bf38 (diff)
downloadlinux-12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8.tar.bz2
mm, hwpoison: fix extra put_page() in soft_offline_page()
When hwpoison_filter() refuses to soft offline a page, the page refcnt incremented previously by MF_COUNT_INCREASED would have been consumed via get_hwpoison_page() if ret <= 0. So the put_ref_page() here will put the extra one. Remove it to fix the issue. Link: https://lkml.kernel.org/r/20220818130016.45313-4-linmiaohe@huawei.com Fixes: 9113eaf331bf ("mm/memory-failure.c: add hwpoison_filter for soft offline") Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r--mm/memory-failure.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index f391818c9eac..799176d3f5f7 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -2591,8 +2591,6 @@ retry:
if (hwpoison_filter(page)) {
if (ret > 0)
put_page(page);
- else
- put_ref_page(ref_page);
mutex_unlock(&mf_mutex);
return -EOPNOTSUPP;