diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2006-03-07 09:42:27 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-03-07 09:42:27 -0500 |
commit | 6a0e243069b09a323255f6e847c87d531961cd96 (patch) | |
tree | 575a7194c86b2b3e1b9db30e283a2f5705e89e99 /arch | |
parent | d11d9b2dd2c43dd99a491df8a83ae28401db0044 (diff) |
[ARM] 3352/1: DSB required for the completion of a TLB maintenance operation
Patch from Catalin Marinas
Chapter B2.7.3 in the latest ARM ARM (with v6 information) states that
the completion of a TLB maintenance operation is only guaranteed by
the execution of a DSB (Data Syncronization Barrier, formerly Data
Write Barrier or Drain Write Buffer).
Note that a DSB is only needed in the flush_tlb_kernel_* functions
since the completion is guaranteed by a mode change (i.e. switching
back to user mode) for the flush_tlb_user_* functions.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mm/tlb-v6.S | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 15dc1a0dffbb..9f80fa502f8f 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -78,7 +78,7 @@ menu "System Type" | |||
78 | 78 | ||
79 | choice | 79 | choice |
80 | prompt "ARM system type" | 80 | prompt "ARM system type" |
81 | default ARCH_RPC | 81 | default ARCH_VERSATILE |
82 | 82 | ||
83 | config ARCH_CLPS7500 | 83 | config ARCH_CLPS7500 |
84 | bool "Cirrus-CL-PS7500FE" | 84 | bool "Cirrus-CL-PS7500FE" |
diff --git a/arch/arm/mm/tlb-v6.S b/arch/arm/mm/tlb-v6.S index 6f76b89ef46e..fd6adde39091 100644 --- a/arch/arm/mm/tlb-v6.S +++ b/arch/arm/mm/tlb-v6.S | |||
@@ -80,6 +80,7 @@ ENTRY(v6wbi_flush_kern_tlb_range) | |||
80 | add r0, r0, #PAGE_SZ | 80 | add r0, r0, #PAGE_SZ |
81 | cmp r0, r1 | 81 | cmp r0, r1 |
82 | blo 1b | 82 | blo 1b |
83 | mcr p15, 0, r2, c7, c10, 4 @ data synchronization barrier | ||
83 | mov pc, lr | 84 | mov pc, lr |
84 | 85 | ||
85 | .section ".text.init", #alloc, #execinstr | 86 | .section ".text.init", #alloc, #execinstr |