diff --git a/mm/madvise.c b/mm/madvise.c index 6022627646fa2c288f8b68308ff3184e20e9f4d9..f0d3d0aaa1167620f1ed86610996464faf88e0a3 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -662,11 +662,6 @@ static int madvise_inject_error(int behavior, */ order = compound_order(compound_head(page)); - if (PageHWPoison(page)) { - put_page(page); - continue; - } - if (behavior == MADV_SOFT_OFFLINE) { pr_info("Soft offlining pfn %#lx at process virtual address %#lx\n", pfn, start); diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 6f16e24969843e86b41ea2a39923adfb3abf9765..385d2d570435cc9cf5e5c074bfbece06593af7ba 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1796,7 +1796,7 @@ static int __soft_offline_page(struct page *page) unlock_page(page); put_page(page); pr_info("soft offline: %#lx page already poisoned\n", pfn); - return -EBUSY; + return 0; } if (!PageHuge(page)) @@ -1902,7 +1902,7 @@ int soft_offline_page(struct page *page, int flags) pr_info("soft offline: %#lx page already poisoned\n", pfn); if (flags & MF_COUNT_INCREASED) put_page(page); - return -EBUSY; + return 0; } get_online_mems();