> +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@xxxxxxxxxxxxxxx -- Speaking for myself only. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>