It was pointed out[1] that using folio_test_hwpoison() is wrong as we need to check the indiviual page that has poison. folio_test_hwpoison() only checks the head page so go back to using PageHWPoison(). Reported-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Fixes: a6fddef49eef ("mm/memory-failure: convert unpoison_memory() to folios") Cc: stable@xxxxxxxxxxxxxxx #v6.4 Signed-off-by: Sidhartha Kumar <sidhartha.kumar@xxxxxxxxxx> [1]: https://lore.kernel.org/lkml/ZLIbZygG7LqSI9xe@xxxxxxxxxxxxxxxxxxxx/ --- mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 02b1d8f104d51..a114c8c3039cd 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -2523,7 +2523,7 @@ int unpoison_memory(unsigned long pfn) goto unlock_mutex; } - if (!folio_test_hwpoison(folio)) { + if (!PageHWPoison(p)) { unpoison_pr_info("Unpoison: Page was already unpoisoned %#lx\n", pfn, &unpoison_rs); goto unlock_mutex; -- 2.41.0