On Tue, Jul 12, 2016 at 04:51:20AM -0700, Hugh Dickins wrote: > The VM_BUG_ON_PAGE in page_move_anon_rmap() is more trouble than it's > worth: the syzkaller fuzzer hit it again. It's still wrong for some > THP cases, because linear_page_index() was never intended to apply to > addresses before the start of a vma. > > That's easily fixed with a signed long cast inside linear_page_index(); > and Dmitry has tested such a patch, to verify the false positive. But > why extend linear_page_index() just for this case? when the avoidance > in page_move_anon_rmap() has already grown ugly, and there's no reason > for the check at all (nothing else there is using address or index). > > Remove address arg from page_move_anon_rmap(), remove VM_BUG_ON_PAGE, > remove CONFIG_DEBUG_VM PageTransHuge adjustment. > > And one more thing: should the compound_head(page) be done inside or > outside page_move_anon_rmap()? It's usually pushed down to the lowest > level nowadays (and mm/memory.c shows no other explicit use of it), > so I think it's better done in page_move_anon_rmap() than by caller. I agree, that's reasonable. > Fixes: 0798d3c022dc ("mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap()") > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> > Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > Cc: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> > Cc: Rik van Riel <riel@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # 4.5+ Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > --- > Of course, we could just do a patch that deletes the VM_BUG_ON_PAGE > (and CONFIG_DEBUG_VM PageTransHuge adjustment) for now, and the cleanup > afterwards - but this doesn't affect a widely used interface, or go back > many stable releases, so personally I prefer to do it all in one go. +1. -- Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>