mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-16 14:02:10 +00:00
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: Andrea Arcangeli <aarcange@redhat.com> Reviewed-by: Rik van Riel <riel@redhat.com> Reviewed-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Hugh Dickins <hughd@google.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Petr Holasek <pholasek@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
63994137eb
commit
99a1300e1d
@ -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);
|
||||
release_pte_page(src_page);
|
||||
/*
|
||||
* ptl mostly unnecessary, but preempt has to
|
||||
|
Loading…
Reference in New Issue
Block a user