aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/memory.c b/mm/memory.c
index ab3537bcfed2..adeac306610f 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -751,7 +751,7 @@ struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
751 unsigned long pfn = pte_pfn(pte); 751 unsigned long pfn = pte_pfn(pte);
752 752
753 if (HAVE_PTE_SPECIAL) { 753 if (HAVE_PTE_SPECIAL) {
754 if (likely(!pte_special(pte) || pte_numa(pte))) 754 if (likely(!pte_special(pte)))
755 goto check_pfn; 755 goto check_pfn;
756 if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP)) 756 if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
757 return NULL; 757 return NULL;
@@ -777,15 +777,14 @@ struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
777 } 777 }
778 } 778 }
779 779
780 if (is_zero_pfn(pfn))
781 return NULL;
780check_pfn: 782check_pfn:
781 if (unlikely(pfn > highest_memmap_pfn)) { 783 if (unlikely(pfn > highest_memmap_pfn)) {
782 print_bad_pte(vma, addr, pte, NULL); 784 print_bad_pte(vma, addr, pte, NULL);
783 return NULL; 785 return NULL;
784 } 786 }
785 787
786 if (is_zero_pfn(pfn))
787 return NULL;
788
789 /* 788 /*
790 * NOTE! We still have PageReserved() pages in the page tables. 789 * NOTE! We still have PageReserved() pages in the page tables.
791 * eg. VDSO mappings can cause them to exist. 790 * eg. VDSO mappings can cause them to exist.