Revert "mm/memory-failure.c: fix race with changing page compound again"
authorNaoya Horiguchi <naoya.horiguchi@nec.com>
Fri, 29 Apr 2022 06:16:02 +0000 (23:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Jul 2022 14:35:17 +0000 (16:35 +0200)
commit 2ba2b008a8bf5fd268a43d03ba79e0ad464d6836 upstream.

Reverts commit 888af2701db7 ("mm/memory-failure.c: fix race with changing
page compound again") because now we fetch the page refcount under
hugetlb_lock in try_memory_failure_hugetlb() so that the race check is no
longer necessary.

Link: https://lkml.kernel.org/r/20220408135323.1559401-4-naoya.horiguchi@linux.dev
Signed-off-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Suggested-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/mm.h
include/ras/ras_event.h
mm/memory-failure.c

index c5fa46e..e4e1817 100644 (file)
@@ -3175,7 +3175,6 @@ enum mf_action_page_type {
        MF_MSG_BUDDY_2ND,
        MF_MSG_DAX,
        MF_MSG_UNSPLIT_THP,
-       MF_MSG_DIFFERENT_PAGE_SIZE,
        MF_MSG_UNKNOWN,
 };
 
index cac13ff..0bdbc0d 100644 (file)
@@ -376,7 +376,6 @@ TRACE_EVENT(aer_event,
        EM ( MF_MSG_BUDDY_2ND, "free buddy page (2nd try)" )            \
        EM ( MF_MSG_DAX, "dax page" )                                   \
        EM ( MF_MSG_UNSPLIT_THP, "unsplit thp" )                        \
-       EM ( MF_MSG_DIFFERENT_PAGE_SIZE, "different page size" )        \
        EMe ( MF_MSG_UNKNOWN, "unknown page" )
 
 /*
index ecd64b2..c71135e 100644 (file)
@@ -741,7 +741,6 @@ static const char * const action_page_types[] = {
        [MF_MSG_BUDDY_2ND]              = "free buddy page (2nd try)",
        [MF_MSG_DAX]                    = "dax page",
        [MF_MSG_UNSPLIT_THP]            = "unsplit thp",
-       [MF_MSG_DIFFERENT_PAGE_SIZE]    = "different page size",
        [MF_MSG_UNKNOWN]                = "unknown page",
 };
 
@@ -1526,16 +1525,6 @@ retry:
                return res == MF_RECOVERED ? 0 : -EBUSY;
        }
 
-       /*
-        * The page could have changed compound pages due to race window.
-        * If this happens just bail out.
-        */
-       if (!PageHuge(p) || compound_head(p) != head) {
-               action_result(pfn, MF_MSG_DIFFERENT_PAGE_SIZE, MF_IGNORED);
-               res = -EBUSY;
-               goto out;
-       }
-
        page_flags = head->flags;
 
        /*