Hi Hugh, On Mon, Jan 10, 2011 at 04:55:53PM -0800, Hugh Dickins wrote: > If you configure THP in addition to HUGETLB_PAGE on x86_32 without PAE, > the p?d-folding works out that munlock_vma_pages_range() can crash to > follow_page()'s pud_huge() BUG_ON(flags & FOLL_GET): it needs the same > VM_HUGETLB check already there on the pmd_huge() line. Conveniently, > openSUSE provides a "blogd" which tests this out at startup! > > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> > --- > This massive rework belongs just after thp-transparent-hugepage-core.patch > > mm/memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- mmotm.orig/mm/memory.c 2011-01-10 16:31:29.000000000 -0800 > +++ mmotm/mm/memory.c 2011-01-10 16:33:16.000000000 -0800 > @@ -1288,7 +1288,7 @@ struct page *follow_page(struct vm_area_ > pud = pud_offset(pgd, address); > if (pud_none(*pud)) > goto no_page_table; > - if (pud_huge(*pud)) { > + if (pud_huge(*pud) && vma->vm_flags & VM_HUGETLB) { > BUG_ON(flags & FOLL_GET); > page = follow_huge_pud(mm, address, pud, flags & FOLL_WRITE); > goto out; How is THP related to this? pud_trans_huge doesn't exist, if pud_huge is true, vma is already guaranteed to belong to hugetlbfs without requiring the additional check. I added the check to pmd_huge already, there it is needed, but for pud_huge it isn't as far as I can tell. -- 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/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>