summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/pte-common.h
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2016-04-29 23:25:32 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2016-05-01 18:32:24 +1000
commit7e1e63c5e9d694c1198d410a6c7b2d0fa06da355 (patch)
tree593c7b6ac6b345b26dfbfa5e03205190203cba11 /arch/powerpc/include/asm/pte-common.h
parent73a1441a9b2ae05c15eb7cc90d4de379b44249bf (diff)
downloadop-kernel-dev-7e1e63c5e9d694c1198d410a6c7b2d0fa06da355.zip
op-kernel-dev-7e1e63c5e9d694c1198d410a6c7b2d0fa06da355.tar.gz
powerpc/mm: Convert pte_user() to static inline
In a subsequent patch we want to add a second definition of pte_user(). Before we do that, make the signature clear, ie. it takes a pte_t and returns bool. We move it up inside the existing #ifndef __ASSEMBLY__ block, but otherwise it's a straight conversion. Convert the call in settlbcam(), which passes an unsigned long, to pass a pte_t. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/pte-common.h')
-rw-r--r--arch/powerpc/include/asm/pte-common.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/powerpc/include/asm/pte-common.h b/arch/powerpc/include/asm/pte-common.h
index 9f5dea5..5f45753 100644
--- a/arch/powerpc/include/asm/pte-common.h
+++ b/arch/powerpc/include/asm/pte-common.h
@@ -76,6 +76,16 @@
*/
#ifndef __ASSEMBLY__
extern unsigned long bad_call_to_PMD_PAGE_SIZE(void);
+
+/*
+ * Don't just check for any non zero bits in __PAGE_USER, since for book3e
+ * and PTE_64BIT, PAGE_KERNEL_X contains _PAGE_BAP_SR which is also in
+ * _PAGE_USER. Need to explicitly match _PAGE_BAP_UR bit in that case too.
+ */
+static inline bool pte_user(pte_t pte)
+{
+ return (pte_val(pte) & _PAGE_USER) == _PAGE_USER;
+}
#endif /* __ASSEMBLY__ */
/* Location of the PFN in the PTE. Most 32-bit platforms use the same
@@ -184,13 +194,6 @@ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void);
/* Make modules code happy. We don't set RO yet */
#define PAGE_KERNEL_EXEC PAGE_KERNEL_X
-/*
- * Don't just check for any non zero bits in __PAGE_USER, since for book3e
- * and PTE_64BIT, PAGE_KERNEL_X contains _PAGE_BAP_SR which is also in
- * _PAGE_USER. Need to explicitly match _PAGE_BAP_UR bit in that case too.
- */
-#define pte_user(val) ((val & _PAGE_USER) == _PAGE_USER)
-
/* Advertise special mapping type for AGP */
#define PAGE_AGP (PAGE_KERNEL_NC)
#define HAVE_PAGE_AGP
OpenPOWER on IntegriCloud