From: Naoya Horiguchi naoya.horiguchi@nec.com
mainline inclusion from linux-v5.10-rc1 commit 7d9d46ac87f91b8dedad5241d64382b650e26487 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I4LE22 CVE: NA
--------------------------------
Drop the PageHuge check, which is dead code since memory_failure() forks into memory_failure_hugetlb() for hugetlb pages.
memory_failure() and memory_failure_hugetlb() shares some functions like hwpoison_user_mappings() and identify_page_state(), so they should properly handle 4kB page, thp, and hugetlb.
Signed-off-by: Naoya Horiguchi naoya.horiguchi@nec.com Signed-off-by: Oscar Salvador osalvador@suse.de Reviewed-by: Mike Kravetz mike.kravetz@oracle.com Signed-off-by: Ma Wupeng mawupeng1@huawei.com Reviewed-by: tong tiangen tongtiangen@huawei.com Reviewed-by: Kefeng Wang wangkefeng.wang@huawei.com Signed-off-by: Yang Yingliang yangyingliang@huawei.com --- mm/memory-failure.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 72e1746e5386f..a432ba37e132a 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1373,10 +1373,7 @@ int memory_failure(unsigned long pfn, int flags) * page_remove_rmap() in try_to_unmap_one(). So to determine page status * correctly, we save a copy of the page flags at this time. */ - if (PageHuge(p)) - page_flags = hpage->flags; - else - page_flags = p->flags; + page_flags = p->flags;
/* * unpoison always clear PG_hwpoison inside page lock