ARM: I-cache: avoid flushing in flush_cache_mm()
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 Oct 2009 14:31:40 +0000 (14:31 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 4 Dec 2009 14:58:51 +0000 (14:58 +0000)
commitea201dbb78651c71c56e440b8b3132906bc7456d
tree53fa8679229960bb585766c5b49301dee834bcec
parent9e95922b1016ac941db7edcf6b6088b3c2e916c8
ARM: I-cache: avoid flushing in flush_cache_mm()

flush_cache_mm() is called in two cases:
1. when a process exits, just before the page tables are torn down.
   We can allow the stale lines to evict themselves over time without
   causing any harm.

2. when a process forks, and we've allocated a new ASID.
   The instruction cache issues are dealt with as pages are brought
   into the new process address space.  Flushing the I-cache here is
   therefore unnecessary.

However, we must keep the VIPT aliasing D-cache flush to ensure that
any dirty cache lines are not written back after the pages have been
reallocated for some other use - which would result in corruption.

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