I've updated the patchset based on feedbacks: - updated comments (from Andrew), - moved calling set_hwpoison_free_buddy_page() from mm/migrate.c to mm/memory-failure.c, which is necessary to check the return code of set_hwpoison_free_buddy_page(), - lkp bot reported a build error when only 1/2 is applied. > mm/memory-failure.c: In function 'soft_offline_huge_page': > >> mm/memory-failure.c:1610:8: error: implicit declaration of function > 'set_hwpoison_free_buddy_page'; did you mean 'is_free_buddy_page'? > [-Werror=implicit-function-declaration] > if (set_hwpoison_free_buddy_page(page)) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > is_free_buddy_page > cc1: some warnings being treated as errors set_hwpoison_free_buddy_page() is defined in 2/2, so we can't use it in 1/2. Simply doing s/set_hwpoison_free_buddy_page/!TestSetPageHWPoison/ will fix this. v1: https://lkml.org/lkml/2018/7/12/968 Thanks, Naoya Horiguchi --- Summary: Naoya Horiguchi (2): mm: fix race on soft-offlining free huge pages mm: soft-offline: close the race against page allocation include/linux/page-flags.h | 5 +++++ include/linux/swapops.h | 10 --------- mm/hugetlb.c | 11 +++++----- mm/memory-failure.c | 53 ++++++++++++++++++++++++++++++++++++++-------- mm/migrate.c | 11 ---------- mm/page_alloc.c | 30 ++++++++++++++++++++++++++ 6 files changed, 84 insertions(+), 36 deletions(-)