diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-05-24 12:18:13 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-05-24 12:18:13 +0800 |
commit | 0a296a966f183e4ef1fcb37940940e8df8c4f258 (patch) | |
tree | f3715d78e72389582ce2ad5dc5c59051f1814b4b /mm/memory-failure.c | |
parent | 03d8016839b087e141e26472fabcf860bc05cf7d (diff) | |
parent | e429f243df2823451c92227317e5fce5f310b674 (diff) |
Merge tag 'v4.1.25' into linux-linaro-lsk-v4.1lsk-v4.1-16.05
This is the 4.1.25 stable release
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r-- | mm/memory-failure.c | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index e26bc59d7dff..7207c16f39c9 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1695,20 +1695,7 @@ static int __soft_offline_page(struct page *page, int flags) if (ret > 0) ret = -EIO; } else { - /* - * After page migration succeeds, the source page can - * be trapped in pagevec and actual freeing is delayed. - * Freeing code works differently based on PG_hwpoison, - * so there's a race. We need to make sure that the - * source page should be freed back to buddy before - * setting PG_hwpoison. - */ - if (!is_free_buddy_page(page)) - drain_all_pages(page_zone(page)); SetPageHWPoison(page); - if (!is_free_buddy_page(page)) - pr_info("soft offline: %#lx: page leaked\n", - pfn); atomic_long_inc(&num_poisoned_pages); } } else { @@ -1760,14 +1747,6 @@ int soft_offline_page(struct page *page, int flags) get_online_mems(); - /* - * Isolate the page, so that it doesn't get reallocated if it - * was free. This flag should be kept set until the source page - * is freed and PG_hwpoison on it is set. - */ - if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE) - set_migratetype_isolate(page, true); - ret = get_any_page(page, pfn, flags); put_online_mems(); if (ret > 0) { /* for in-use pages */ @@ -1786,6 +1765,5 @@ int soft_offline_page(struct page *page, int flags) atomic_long_inc(&num_poisoned_pages); } } - unset_migratetype_isolate(page, MIGRATE_MOVABLE); return ret; } |