From: Miaohe Lin <linmiaohe@huawei.com>
Date: Tue, 30 Aug 2022 12:36:03 +0000 (+0800)
Subject: mm, hwpoison: check PageTable() explicitly in hwpoison_user_mappings()
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b680dae9a881bbf80dc53a79a59e4f1386b7da5e;p=linux.git

mm, hwpoison: check PageTable() explicitly in hwpoison_user_mappings()

PageTable can't be handled by memory_failure(). Filter it out explicitly in
hwpoison_user_mappings(). This will also make code more consistent with the
relevant check in unpoison_memory().

Link: https://lkml.kernel.org/r/20220830123604.25763-6-linmiaohe@huawei.com
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>
---

diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index cca8264dda1b..3034078abe63 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1409,7 +1409,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn,
 	 * Here we are interested only in user-mapped pages, so skip any
 	 * other types of pages.
 	 */
-	if (PageReserved(p) || PageSlab(p))
+	if (PageReserved(p) || PageSlab(p) || PageTable(p))
 		return true;
 	if (!(PageLRU(hpage) || PageHuge(p)))
 		return true;