Messages in this thread | | | From | "Chen, Kenneth W" <> | Subject | RE: RFC: Cleanup / small fixes to hugetlb fault handling | Date | Wed, 26 Oct 2005 11:44:52 -0700 |
| |
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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |