diff options
Diffstat (limited to 'arch/arm/include/asm/pgtable.h')
-rw-r--r-- | arch/arm/include/asm/pgtable.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 1c462381c225..150ece66ddf3 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -232,6 +232,18 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) | |||
232 | #define pte_valid_user(pte) \ | 232 | #define pte_valid_user(pte) \ |
233 | (pte_valid(pte) && pte_isset((pte), L_PTE_USER) && pte_young(pte)) | 233 | (pte_valid(pte) && pte_isset((pte), L_PTE_USER) && pte_young(pte)) |
234 | 234 | ||
235 | static inline bool pte_access_permitted(pte_t pte, bool write) | ||
236 | { | ||
237 | pteval_t mask = L_PTE_PRESENT | L_PTE_USER; | ||
238 | pteval_t needed = mask; | ||
239 | |||
240 | if (write) | ||
241 | mask |= L_PTE_RDONLY; | ||
242 | |||
243 | return (pte_val(pte) & mask) == needed; | ||
244 | } | ||
245 | #define pte_access_permitted pte_access_permitted | ||
246 | |||
235 | #if __LINUX_ARM_ARCH__ < 6 | 247 | #if __LINUX_ARM_ARCH__ < 6 |
236 | static inline void __sync_icache_dcache(pte_t pteval) | 248 | static inline void __sync_icache_dcache(pte_t pteval) |
237 | { | 249 | { |