ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails
authorWill Deacon <will.deacon@arm.com>
Fri, 27 Apr 2012 12:08:53 +0000 (13:08 +0100)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 26 Oct 2013 22:48:06 +0000 (01:48 +0300)
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>

No differences found