浏览代码

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>
Russell King 16 年之前
父节点
当前提交
ea201dbb78
共有 1 个文件被更改,包括 0 次插入1 次删除
  1. 0 1
      arch/arm/mm/flush.c

+ 0 - 1
arch/arm/mm/flush.c

@@ -50,7 +50,6 @@ void flush_cache_mm(struct mm_struct *mm)
 		    :
 		    :
 		    : "r" (0)
 		    : "r" (0)
 		    : "cc");
 		    : "cc");
-		__flush_icache_all();
 	}
 	}
 }
 }