summaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/cache-v3.S
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2012-04-27 13:08:53 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-05-02 11:12:49 +0100
commitc5102f5935503ebebad46e137d0eef68f272cc16 (patch)
tree888332340ca07cbd2a648fa603b8b252af02252a /arch/arm/mm/cache-v3.S
parent435a7ef52db7d86e67a009b36cac1457f8972391 (diff)
downloadblackbird-obmc-linux-c5102f5935503ebebad46e137d0eef68f272cc16.tar.gz
blackbird-obmc-linux-c5102f5935503ebebad46e137d0eef68f272cc16.zip
ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails
The cacheflush syscall can fail for two reasons: (1) The arguments are invalid (nonsensical address range or no VMA) (2) The region generates a translation fault on a VIPT or PIPT cache This patch allows do_cache_op to return an error code to userspace in the case of the above. The various coherent_user_range implementations are modified to return 0 in the case of VIVT caches or -EFAULT in the case of an abort on v6/v7 cores. Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/cache-v3.S')
-rw-r--r--arch/arm/mm/cache-v3.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mm/cache-v3.S b/arch/arm/mm/cache-v3.S
index c2301f226100..52e35f32eefb 100644
--- a/arch/arm/mm/cache-v3.S
+++ b/arch/arm/mm/cache-v3.S
@@ -78,6 +78,7 @@ ENTRY(v3_coherent_kern_range)
* - end - virtual end address
*/
ENTRY(v3_coherent_user_range)
+ mov r0, #0
mov pc, lr
/*
OpenPOWER on IntegriCloud