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, 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>