Hi, On Fri, Mar 29, 2013 at 02:57:30PM +0100, Michal Hocko wrote: > On Thu 28-03-13 11:42:38, Naoya Horiguchi wrote: > [...] > > @@ -2968,7 +2968,8 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, > > * first, for the page indexing below to work. > > */ > > pte = huge_pte_offset(mm, vaddr & huge_page_mask(h)); > > - absent = !pte || huge_pte_none(huge_ptep_get(pte)); > > + absent = !pte || huge_pte_none(huge_ptep_get(pte)) || > > + is_swap_pte(huge_ptep_get(pte)); > > is_swap_pte doesn't seem right. Shouldn't you use is_hugetlb_entry_hwpoisoned > instead? I tested only hwpoisoned hugepage, but the same can happen for hugepages under migration. So I intended to filter out all types of swap entries. The local variable 'absent' seems to mean whether data on the address is immediately available, so swap type entry isn't included in it. Thanks, Naoya -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html