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>
This commit is contained in:
parent
9e95922b10
commit
ea201dbb78
|
@ -50,7 +50,6 @@ void flush_cache_mm(struct mm_struct *mm)
|
|||
:
|
||||
: "r" (0)
|
||||
: "cc");
|
||||
__flush_icache_all();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue