Commit 99a1300e authored by Andrea Arcangeli's avatar Andrea Arcangeli Committed by Linus Torvalds

thp: avoid VM_BUG_ON page_count(page) false positives in __collapse_huge_page_copy

Speculative cache pagecache lookups can elevate the refcount from
under us, so avoid the false positive. If the refcount is < 2 we'll be
notified by a VM_BUG_ON in put_page_testzero as there are two
put_page(src_page) in a row before returning from this function.
Signed-off-by: default avatarAndrea Arcangeli <>
Reviewed-by: default avatarRik van Riel <>
Reviewed-by: default avatarJohannes Weiner <>
Cc: Hugh Dickins <>
Cc: Mel Gorman <>
Cc: Petr Holasek <>
Cc: Andrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 63994137
......@@ -1811,7 +1811,6 @@ static void __collapse_huge_page_copy(pte_t *pte, struct page *page,
src_page = pte_page(pteval);
copy_user_highpage(page, src_page, address, vma);
VM_BUG_ON(page_mapcount(src_page) != 1);
VM_BUG_ON(page_count(src_page) != 2);
* ptl mostly unnecessary, but preempt has to
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment