RE: RFC: Cleanup / small fixes to hugetlb fault handling
From: Chen, Kenneth W <hidden>
Date: 2005-10-26 18:47:03
Also in:
lkml
From: Chen, Kenneth W <hidden>
Date: 2005-10-26 18:47:03
Also in:
lkml
David Gibson wrote on Tuesday, October 25, 2005 7:49 PM
+int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+ unsigned long address, int write_access)
+{
+ pte_t *ptep;
+ pte_t entry;
+
+ ptep = huge_pte_alloc(mm, address);
+ if (! ptep)
+ /* OOM */
+ return VM_FAULT_SIGBUS;
+
+ entry = *ptep;
+
+ if (pte_none(entry))
+ return hugetlb_no_page(mm, vma, address, ptep);
+
+ /* we could get here if another thread instantiated the pte
+ * before the test above */
+
+ return VM_FAULT_SIGBUS;
}Are you sure about the last return? Looks like a typo to me, if *ptep is present, it should return VM_FAULT_MINOR. But the bigger question is: don't you need some lock when checking *ptep? - Ken -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>