ARM: 6386/1: flush_ptrace_access: invalidate correct I-cache alias
authorWill Deacon <will.deacon@arm.com>
Mon, 13 Sep 2010 15:19:41 +0000 (16:19 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 4 Oct 2010 19:57:10 +0000 (20:57 +0100)
commitc4e259c859538e94007d1f04a488540375189551
treedf5485bd1184c562a11a8588915539d136e8de29
parent8925ec4c530094b878e7e28a1fd78e7122afd973
ARM: 6386/1: flush_ptrace_access: invalidate correct I-cache alias

copy_to_user_page can be used by access_process_vm to write to an
executable page of a process using a mapping acquired by kmap.
For systems with I-cache aliasing, flushing the I-cache using the
Kernel mapping may leave stale data in the I-cache if the user
mapping is of a different colour.

This patch introduces a flush_icache_alias function to flush.c,
which calls flush_icache_range with a mapping of the specified
colour. flush_ptrace_access is then modified to call this new
function instead of coherent_kern_range in the case of an aliasing
I-cache and a non-aliasing D-cache.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/flush.c