diff options
author | Will Deacon <will.deacon@arm.com> | 2012-07-19 14:51:05 +0400 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2012-11-09 18:13:19 +0400 |
commit | dbf62d50067e55a782583fe53c3d2a3d98b1f6f3 (patch) | |
tree | 1bca43e9824e79d97bc32445182fe91a6600e035 /arch/arm/mm/proc-v7-2level.S | |
parent | 0cbbbad63179652272cc5e18a68d69bfc8dd25ce (diff) | |
download | linux-dbf62d50067e55a782583fe53c3d2a3d98b1f6f3.tar.xz |
ARM: mm: introduce L_PTE_VALID for page table entries
For long-descriptor translation table formats, the ARMv7 architecture
defines the last two bits of the second- and third-level descriptors to
be:
x0b - Invalid
01b - Block (second-level), Reserved (third-level)
11b - Table (second-level), Page (third-level)
This allows us to define L_PTE_PRESENT as (3 << 0) and use this value to
create ptes directly. However, when determining whether a given pte
value is present in the low-level page table accessors, we only need to
check the least significant bit of the descriptor, allowing us to write
faulting, present entries which are required for PROT_NONE mappings.
This patch introduces L_PTE_VALID, which can be used to test whether a
pte should fault, and updates the low-level page table accessors
accordingly.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm/mm/proc-v7-2level.S')
-rw-r--r-- | arch/arm/mm/proc-v7-2level.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S index e37600b91b25..e755e9f8d1b4 100644 --- a/arch/arm/mm/proc-v7-2level.S +++ b/arch/arm/mm/proc-v7-2level.S @@ -100,7 +100,7 @@ ENTRY(cpu_v7_set_pte_ext) orrne r3, r3, #PTE_EXT_XN tst r1, #L_PTE_YOUNG - tstne r1, #L_PTE_PRESENT + tstne r1, #L_PTE_VALID moveq r3, #0 ARM( str r3, [r0, #2048]! ) |