diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-05-09 18:24:09 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-05-09 18:24:09 -0400 |
commit | 1f2ee6496b1f71e9d5aa2448745e65fbafdc3bd5 (patch) | |
tree | 3f143311afca5e316afd06c2fc4f7d73b19cdcf0 /mm/memory.c | |
parent | 5bf6c6e30d8b71d092e8830208e182d84b907fcd (diff) | |
parent | da109897a142dd017172c0ce7abf0be8646f7109 (diff) |
Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion into fixes
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c index bbab1e37055e..48c122d42ed7 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -969,7 +969,7 @@ struct page *follow_page(struct vm_area_struct *vma, unsigned long address, | |||
969 | goto no_page_table; | 969 | goto no_page_table; |
970 | 970 | ||
971 | pmd = pmd_offset(pud, address); | 971 | pmd = pmd_offset(pud, address); |
972 | if (pmd_none(*pmd) || unlikely(pmd_bad(*pmd))) | 972 | if (pmd_none(*pmd)) |
973 | goto no_page_table; | 973 | goto no_page_table; |
974 | 974 | ||
975 | if (pmd_huge(*pmd)) { | 975 | if (pmd_huge(*pmd)) { |
@@ -978,6 +978,9 @@ struct page *follow_page(struct vm_area_struct *vma, unsigned long address, | |||
978 | goto out; | 978 | goto out; |
979 | } | 979 | } |
980 | 980 | ||
981 | if (unlikely(pmd_bad(*pmd))) | ||
982 | goto no_page_table; | ||
983 | |||
981 | ptep = pte_offset_map_lock(mm, pmd, address, &ptl); | 984 | ptep = pte_offset_map_lock(mm, pmd, address, &ptl); |
982 | if (!ptep) | 985 | if (!ptep) |
983 | goto out; | 986 | goto out; |