diff options
-rw-r--r-- | arch/arm/mm/mmu.c | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-xsc3.S | 4 | ||||
-rw-r--r-- | include/asm-arm/pgtable.h | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index f866bf6b97d4..445bc3b951e6 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -265,7 +265,7 @@ static void __init build_mem_type_table(void) | |||
265 | if (arch_is_coherent()) { | 265 | if (arch_is_coherent()) { |
266 | if (cpu_is_xsc3()) { | 266 | if (cpu_is_xsc3()) { |
267 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; | 267 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; |
268 | mem_types[MT_MEMORY].prot_pte |= L_PTE_COHERENT; | 268 | mem_types[MT_MEMORY].prot_pte |= L_PTE_SHARED; |
269 | } | 269 | } |
270 | } | 270 | } |
271 | 271 | ||
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index c4d778a8619d..85c3523d0a95 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -371,8 +371,10 @@ ENTRY(cpu_xsc3_switch_mm) | |||
371 | ENTRY(cpu_xsc3_set_pte) | 371 | ENTRY(cpu_xsc3_set_pte) |
372 | str r1, [r0], #-2048 @ linux version | 372 | str r1, [r0], #-2048 @ linux version |
373 | 373 | ||
374 | bic r2, r1, #0xdf0 @ Keep C, B, coherency bits | 374 | bic r2, r1, #0xff0 @ Keep C, B bits |
375 | orr r2, r2, #PTE_TYPE_EXT @ extended page | 375 | orr r2, r2, #PTE_TYPE_EXT @ extended page |
376 | tst r1, #L_PTE_SHARED @ Shared? | ||
377 | orrne r2, r2, #0x200 | ||
376 | 378 | ||
377 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | 379 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY |
378 | 380 | ||
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index ed8cb5963e99..88cd5c784ef0 100644 --- a/include/asm-arm/pgtable.h +++ b/include/asm-arm/pgtable.h | |||
@@ -169,8 +169,7 @@ extern void __pgd_error(const char *file, int line, unsigned long val); | |||
169 | #define L_PTE_WRITE (1 << 5) | 169 | #define L_PTE_WRITE (1 << 5) |
170 | #define L_PTE_EXEC (1 << 6) | 170 | #define L_PTE_EXEC (1 << 6) |
171 | #define L_PTE_DIRTY (1 << 7) | 171 | #define L_PTE_DIRTY (1 << 7) |
172 | #define L_PTE_COHERENT (1 << 9) /* I/O coherent (xsc3) */ | 172 | #define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */ |
173 | #define L_PTE_SHARED (1 << 10) /* shared between CPUs (v6) */ | ||
174 | #define L_PTE_ASID (1 << 11) /* non-global (use ASID, v6) */ | 173 | #define L_PTE_ASID (1 << 11) /* non-global (use ASID, v6) */ |
175 | 174 | ||
176 | #ifndef __ASSEMBLY__ | 175 | #ifndef __ASSEMBLY__ |