aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/proc-macros.S
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-11-15 19:23:31 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-22 06:05:35 -0500
commit9522d7e4cb5e0858122fc55d33a2c07728f0b10d (patch)
tree49438ddcd5217da82cf9ebe79dda8577bc346456 /arch/arm/mm/proc-macros.S
parente926f4495e202500a6265987277fab217e235f08 (diff)
ARM: pgtable: invert L_PTE_EXEC to L_PTE_XN
The hardware page tables use an XN bit 'execute never'. Historically, we've had a Linux 'execute allow' bit, in the positive sense. Get rid of this artifact as future hardware will continue to have the XN sense. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/proc-macros.S')
-rw-r--r--arch/arm/mm/proc-macros.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S
index cbedf9c46b9d..4a7a9e142e85 100644
--- a/arch/arm/mm/proc-macros.S
+++ b/arch/arm/mm/proc-macros.S
@@ -81,7 +81,7 @@
81#if L_PTE_SHARED != PTE_EXT_SHARED 81#if L_PTE_SHARED != PTE_EXT_SHARED
82#error PTE shared bit mismatch 82#error PTE shared bit mismatch
83#endif 83#endif
84#if (L_PTE_EXEC+L_PTE_USER+L_PTE_WRITE+L_PTE_DIRTY+L_PTE_YOUNG+\ 84#if (L_PTE_XN+L_PTE_USER+L_PTE_WRITE+L_PTE_DIRTY+L_PTE_YOUNG+\
85 L_PTE_FILE+L_PTE_PRESENT) > L_PTE_SHARED 85 L_PTE_FILE+L_PTE_PRESENT) > L_PTE_SHARED
86#error Invalid Linux PTE bit settings 86#error Invalid Linux PTE bit settings
87#endif 87#endif
@@ -141,8 +141,8 @@
141 tstne r3, #PTE_EXT_APX 141 tstne r3, #PTE_EXT_APX
142 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 142 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
143 143
144 tst r1, #L_PTE_EXEC 144 tst r1, #L_PTE_XN
145 orreq r3, r3, #PTE_EXT_XN 145 orrne r3, r3, #PTE_EXT_XN
146 146
147 orr r3, r3, r2 147 orr r3, r3, r2
148 148