On Thu 26-07-12 14:31:50, Rik van Riel wrote: > On 07/20/2012 10:36 AM, Michal Hocko wrote: > > >--- a/arch/x86/mm/hugetlbpage.c > >+++ b/arch/x86/mm/hugetlbpage.c > >@@ -81,7 +81,12 @@ static void huge_pmd_share(struct mm_struct *mm, unsigned > >long addr, pud_t *pud) > > if (saddr) { > > spte = huge_pte_offset(svma->vm_mm, saddr); > > if (spte) { > >- get_page(virt_to_page(spte)); > >+ struct page *spte_page = virt_to_page(spte); > >+ if (!is_hugetlb_pmd_page_valid(spte_page)) { > > What prevents somebody else from marking the hugetlb > pmd invalid, between here... > > >+ spte = NULL; > >+ continue; > >+ } > > ... and here?
huge_ptep_get_and_clear is (should be) called inside i_mmap which is not the case right now as Mel already pointed out in other email -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/