On 7/17/2023 11:18 AM, Sidhartha Kumar wrote:
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@infradead.org Fixes: a6fddef49eef ("mm/memory-failure: convert unpoison_memory() to folios") Cc: stable@vger.kernel.org #v6.4 Signed-off-by: Sidhartha Kumar sidhartha.kumar@oracle.com
[1]: https://lore.kernel.org/lkml/ZLIbZygG7LqSI9xe@casper.infradead.org/
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;
Would it worth the trouble to create folio_page_test_##lname(folio, index) macros to address folio subpage?
thanks! -jane