|
@@ -3696,12 +3696,12 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
|
} else if (unlikely(is_hugetlb_entry_hwpoisoned(entry)))
|
|
|
return VM_FAULT_HWPOISON_LARGE |
|
|
|
VM_FAULT_SET_HINDEX(hstate_index(h));
|
|
|
+ } else {
|
|
|
+ ptep = huge_pte_alloc(mm, address, huge_page_size(h));
|
|
|
+ if (!ptep)
|
|
|
+ return VM_FAULT_OOM;
|
|
|
}
|
|
|
|
|
|
- ptep = huge_pte_alloc(mm, address, huge_page_size(h));
|
|
|
- if (!ptep)
|
|
|
- return VM_FAULT_OOM;
|
|
|
-
|
|
|
mapping = vma->vm_file->f_mapping;
|
|
|
idx = vma_hugecache_offset(h, vma, address);
|
|
|
|