On (06/06/16 15:05), Vlastimil Babka wrote: [..] > I think this does fix the inconsistency, thanks. > > But looking at collapse_huge_page() as of latest -next, I wonder if there's > another problem: > > pmd = mm_find_pmd(mm, address); > ... > up_read(&mm->mmap_sem); > down_write(&mm->mmap_sem); > hugepage_vma_revalidate(mm, address); > ... > pte = pte_offset_map(pmd, address); > > What guarantees that 'pmd' is still valid? the same question applied to __collapse_huge_page_swapin(), I think. __collapse_huge_page_swapin(pmd) pte = pte_offset_map(pmd, address); do_swap_page(mm, vma, _address, pte, pmd...) up_read(&mm->mmap_sem); down_read(&mm->mmap_sem); pte = pte_offset_map(pmd, _address); -ss -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html