diff options
author | Miaohe Lin <linmiaohe@huawei.com> | 2022-08-18 21:00:13 +0800 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2022-09-11 20:25:57 -0700 |
commit | 12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8 (patch) | |
tree | cf2124bc0866f51172337ab6a7f61fa31a738adc | |
parent | 6bbabd041dfd4823c752940286656d404621bf38 (diff) | |
download | linux-stable-12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8.tar.gz linux-stable-12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8.tar.bz2 linux-stable-12f1dbcf8f144c0b8dde7a62fea766f88cb79fc8.zip |
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>
-rw-r--r-- | mm/memory-failure.c | 2 |
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; |