diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-11-19 06:30:29 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-11-19 06:30:29 -0500 |
commit | f27d9b7198a0a0ffbd872a4b795c7613cd759ea3 (patch) | |
tree | f1e72f372c8ca39bf9f181539515101cb735acab /arch/arm/mm | |
parent | c71d4aa7e98f30d4011b44b168263abc72f676bd (diff) | |
parent | 26ffd0d43b186b0d5186354da8714a1c2d360df0 (diff) |
Merge branch 'for-rmk/prot-none' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/mmu.c | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-macros.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-v7-2level.S | 10 | ||||
-rw-r--r-- | arch/arm/mm/proc-v7-3level.S | 5 |
4 files changed, 16 insertions, 5 deletions
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 941dfb9e9a78..99b47b950efc 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -488,7 +488,7 @@ static void __init build_mem_type_table(void) | |||
488 | #endif | 488 | #endif |
489 | 489 | ||
490 | for (i = 0; i < 16; i++) { | 490 | for (i = 0; i < 16; i++) { |
491 | unsigned long v = pgprot_val(protection_map[i]); | 491 | pteval_t v = pgprot_val(protection_map[i]); |
492 | protection_map[i] = __pgprot(v | user_pgprot); | 492 | protection_map[i] = __pgprot(v | user_pgprot); |
493 | } | 493 | } |
494 | 494 | ||
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index b29a2265af01..eb6aa73bc8b7 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
@@ -167,6 +167,10 @@ | |||
167 | tst r1, #L_PTE_YOUNG | 167 | tst r1, #L_PTE_YOUNG |
168 | tstne r1, #L_PTE_PRESENT | 168 | tstne r1, #L_PTE_PRESENT |
169 | moveq r3, #0 | 169 | moveq r3, #0 |
170 | #ifndef CONFIG_CPU_USE_DOMAINS | ||
171 | tstne r1, #L_PTE_NONE | ||
172 | movne r3, #0 | ||
173 | #endif | ||
170 | 174 | ||
171 | str r3, [r0] | 175 | str r3, [r0] |
172 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 176 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte |
diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S index fd045e706390..6d98c13ab827 100644 --- a/arch/arm/mm/proc-v7-2level.S +++ b/arch/arm/mm/proc-v7-2level.S | |||
@@ -100,7 +100,11 @@ ENTRY(cpu_v7_set_pte_ext) | |||
100 | orrne r3, r3, #PTE_EXT_XN | 100 | orrne r3, r3, #PTE_EXT_XN |
101 | 101 | ||
102 | tst r1, #L_PTE_YOUNG | 102 | tst r1, #L_PTE_YOUNG |
103 | tstne r1, #L_PTE_PRESENT | 103 | tstne r1, #L_PTE_VALID |
104 | #ifndef CONFIG_CPU_USE_DOMAINS | ||
105 | eorne r1, r1, #L_PTE_NONE | ||
106 | tstne r1, #L_PTE_NONE | ||
107 | #endif | ||
104 | moveq r3, #0 | 108 | moveq r3, #0 |
105 | 109 | ||
106 | ARM( str r3, [r0, #2048]! ) | 110 | ARM( str r3, [r0, #2048]! ) |
@@ -161,11 +165,11 @@ ENDPROC(cpu_v7_set_pte_ext) | |||
161 | * TFR EV X F I D LR S | 165 | * TFR EV X F I D LR S |
162 | * .EEE ..EE PUI. .T.T 4RVI ZWRS BLDP WCAM | 166 | * .EEE ..EE PUI. .T.T 4RVI ZWRS BLDP WCAM |
163 | * rxxx rrxx xxx0 0101 xxxx xxxx x111 xxxx < forced | 167 | * rxxx rrxx xxx0 0101 xxxx xxxx x111 xxxx < forced |
164 | * 1 0 110 0011 1100 .111 1101 < we want | 168 | * 01 0 110 0011 1100 .111 1101 < we want |
165 | */ | 169 | */ |
166 | .align 2 | 170 | .align 2 |
167 | .type v7_crval, #object | 171 | .type v7_crval, #object |
168 | v7_crval: | 172 | v7_crval: |
169 | crval clear=0x0120c302, mmuset=0x10c03c7d, ucset=0x00c01c7c | 173 | crval clear=0x2120c302, mmuset=0x10c03c7d, ucset=0x00c01c7c |
170 | 174 | ||
171 | .previous | 175 | .previous |
diff --git a/arch/arm/mm/proc-v7-3level.S b/arch/arm/mm/proc-v7-3level.S index 8de0f1dd1549..7b56386f9496 100644 --- a/arch/arm/mm/proc-v7-3level.S +++ b/arch/arm/mm/proc-v7-3level.S | |||
@@ -65,8 +65,11 @@ ENDPROC(cpu_v7_switch_mm) | |||
65 | */ | 65 | */ |
66 | ENTRY(cpu_v7_set_pte_ext) | 66 | ENTRY(cpu_v7_set_pte_ext) |
67 | #ifdef CONFIG_MMU | 67 | #ifdef CONFIG_MMU |
68 | tst r2, #L_PTE_PRESENT | 68 | tst r2, #L_PTE_VALID |
69 | beq 1f | 69 | beq 1f |
70 | tst r3, #1 << (57 - 32) @ L_PTE_NONE | ||
71 | bicne r2, #L_PTE_VALID | ||
72 | bne 1f | ||
70 | tst r3, #1 << (55 - 32) @ L_PTE_DIRTY | 73 | tst r3, #1 << (55 - 32) @ L_PTE_DIRTY |
71 | orreq r2, #L_PTE_RDONLY | 74 | orreq r2, #L_PTE_RDONLY |
72 | 1: strd r2, r3, [r0] | 75 | 1: strd r2, r3, [r0] |