Hi Andi,

I encounter an issue with 3.10 kernel where soft offlined huge page can not be dequeued. Specifically, in function soft_offline_huge_page,  dequeue_hwpoisoned_huge_page returns negative. It turns out that right after the page is put_page, it's grabbed by some thread again.

Is there a fix that can prevent offlined pages being put back in use?
Plus, from the comment, dequeue_hwpoisoned_huge_page assumes caller holding the page lock, which is not the case in this context, would this be a problem in this case ?
Thank you.
-Zhan