Merge tag 'v3.10.86' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / mm / memory.c
index 9feed4bfb32366d3356ba6dcc6390c748655ca75..313d94a9ae260fcdf1d4da7de288b055171afd7d 100644 (file)
@@ -3538,6 +3538,9 @@ static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                return VM_FAULT_SIGBUS;
 
        pte_unmap(page_table);
+       /* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */
+       if (!vma->vm_ops->fault)
+               return VM_FAULT_SIGBUS;
        return __do_fault(mm, vma, address, pmd, pgoff, flags, orig_pte);
 }
 
@@ -3749,10 +3752,9 @@ int handle_pte_fault(struct mm_struct *mm,
        entry = *pte;
        if (!pte_present(entry)) {
                if (pte_none(entry)) {
-                       if (vma->vm_ops) {
+                       if (vma->vm_ops)
                                return do_linear_fault(mm, vma, address,
-                                       pte, pmd, flags, entry);
-                       }
+                                               pte, pmd, flags, entry);
                        return do_anonymous_page(mm, vma, address,
                                                 pte, pmd, flags);
                }