From: Andi Kleen on
> +void isolate_hwpoisoned_huge_page(struct page *hpage)
> +{
> + lock_page(hpage);
> + __isolate_hwpoisoned_huge_page(hpage);
> + unlock_page(hpage);
> +}

This assumes all other users (even outside this file)
who lock always do so on the head page too. Needs some double-checking?

> } else {
> pr_debug("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
> pfn, ret, page_count(page), page->flags);
> @@ -1351,8 +1380,8 @@ int soft_offline_page(struct page *page, int flags)
> return ret;
>
> done:
> - atomic_long_add(1, &mce_bad_pages);
> - SetPageHWPoison(page);
> + atomic_long_add(1 << compound_order(hpage), &mce_bad_pages);

Probably should add a separate counter too?

-Andi
--
ak(a)linux.intel.com -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/