Commit a581865e authored by Miaohe Lin's avatar Miaohe Lin Committed by Linus Torvalds

mm/hwpoison-inject: support injecting hwpoison to free page

memory_failure() can handle free buddy page.  Support injecting hwpoison
to free page by adding is_free_buddy_page check when hwpoison filter is
disabled.

[akpm@linux-foundation.org: export is_free_buddy_page() to modules]

Link: https://lkml.kernel.org/r/20220218092052.3853-1-linmiaohe@huawei.comSigned-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b04d3eeb
...@@ -32,9 +32,9 @@ static int hwpoison_inject(void *data, u64 val) ...@@ -32,9 +32,9 @@ static int hwpoison_inject(void *data, u64 val)
shake_page(hpage); shake_page(hpage);
/* /*
* This implies unable to support non-LRU pages. * This implies unable to support non-LRU pages except free page.
*/ */
if (!PageLRU(hpage) && !PageHuge(p)) if (!PageLRU(hpage) && !PageHuge(p) && !is_free_buddy_page(p))
return 0; return 0;
/* /*
......
...@@ -9417,6 +9417,7 @@ bool is_free_buddy_page(struct page *page) ...@@ -9417,6 +9417,7 @@ bool is_free_buddy_page(struct page *page)
return order < MAX_ORDER; return order < MAX_ORDER;
} }
EXPORT_SYMBOL(is_free_buddy_page);
#ifdef CONFIG_MEMORY_FAILURE #ifdef CONFIG_MEMORY_FAILURE
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment