flush icache if VM_EXEC in flush_cache_page

anfei anfei.zhou at gmail.com
Thu Mar 25 11:35:46 EDT 2010


Hi,

There is a little difference of flushing icache between flush_cache_page
and flush_cache_range, why not make them the same?  I think they have
the very similar semantic except the range.  If the vma is VM_EXEC, we
should flush the icache no matter what cache type, and if it's not,  
then it's not necessary.  Is it right?


Signed-off-by: Anfei Zhou <anfei.zhou at gmail.com>
---
 arch/arm/mm/flush.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index e34f095..48a756a 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -80,12 +80,10 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig
 		return;
 	}
 
-	if (cache_is_vipt_aliasing()) {
+	if (cache_is_vipt_aliasing())
 		flush_pfn_alias(pfn, user_addr);
-		__flush_icache_all();
-	}
 
-	if (vma->vm_flags & VM_EXEC && icache_is_vivt_asid_tagged())
+	if (vma->vm_flags & VM_EXEC)
 		__flush_icache_all();
 }
 #else
-- 
1.6.4.rc1




More information about the linux-arm-kernel mailing list