diff options
Diffstat (limited to 'arch/arm/include/asm/pgalloc.h')
-rw-r--r-- | arch/arm/include/asm/pgalloc.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h index 78a779361682..19cfab526d13 100644 --- a/arch/arm/include/asm/pgalloc.h +++ b/arch/arm/include/asm/pgalloc.h | |||
@@ -157,7 +157,15 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) | |||
157 | static inline void | 157 | static inline void |
158 | pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) | 158 | pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep) |
159 | { | 159 | { |
160 | __pmd_populate(pmdp, page_to_phys(ptep), _PAGE_USER_TABLE); | 160 | extern pmdval_t user_pmd_table; |
161 | pmdval_t prot; | ||
162 | |||
163 | if (__LINUX_ARM_ARCH__ >= 6 && !IS_ENABLED(CONFIG_ARM_LPAE)) | ||
164 | prot = user_pmd_table; | ||
165 | else | ||
166 | prot = _PAGE_USER_TABLE; | ||
167 | |||
168 | __pmd_populate(pmdp, page_to_phys(ptep), prot); | ||
161 | } | 169 | } |
162 | #define pmd_pgtable(pmd) pmd_page(pmd) | 170 | #define pmd_pgtable(pmd) pmd_page(pmd) |
163 | 171 | ||