On 2023/7/18 2:18, 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)) {
For successfully handled pages, they should be non-compound pages (dissolved, splitted or normal pages). So this patch makes no change for them. But for failed to hwpoisoned thp and hugetlb, there's some difference. But since Naoya points out that, "the users of unpoison should know where the PageHWPoison is set via /proc/kpageflags.", I'm fine with this patch.
Reviewed-by: Miaohe Lin linmiaohe@huawei.com
Thanks.