linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2] arm64: add DSB after icache flush in __flush_icache_all()
@ 2014-01-28  7:06 Vinayak Kale
  2014-01-28 16:14 ` Will Deacon
  0 siblings, 1 reply; 10+ messages in thread
From: Vinayak Kale @ 2014-01-28  7:06 UTC (permalink / raw)
  To: linux-arm-kernel

Add DSB after icache flush. It's needed to complete the cache maintenance
operation. The function __flush_icache_all() is used only for user space
mappings and an ISB is not required because of an exception return before
executing user instructions. An exception return would behave like an ISB.

This patch also uses 'memory' clobber for flush operation instruction to 
prevent instruction re-ordering by compiler. 

Signed-off-by: Vinayak Kale <vkale@apm.com>
---

V2: - Add more desciption in the commit message as suggested by Catalin & Will
    - Use 'memory' clobber for flush instruction as suggested by Will
    

 arch/arm64/include/asm/cacheflush.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h
index fea9ee3..bd30f42 100644
--- a/arch/arm64/include/asm/cacheflush.h
+++ b/arch/arm64/include/asm/cacheflush.h
@@ -115,7 +115,8 @@ extern void flush_dcache_page(struct page *);
 
 static inline void __flush_icache_all(void)
 {
-	asm("ic	ialluis");
+	asm volatile("ic ialluis" : : : "memory");
+	dsb();
 }
 
 #define flush_dcache_mmap_lock(mapping) \
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-02-05  9:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-28  7:06 [PATCH V2] arm64: add DSB after icache flush in __flush_icache_all() Vinayak Kale
2014-01-28 16:14 ` Will Deacon
2014-01-30  6:04   ` Vinayak Kale
2014-01-30 18:07     ` Will Deacon
2014-01-30 21:42       ` Nicolas Pitre
2014-01-31  0:16         ` Will Deacon
2014-01-31  2:22           ` Nicolas Pitre
2014-01-31 10:48           ` Russell King - ARM Linux
2014-02-03 11:17             ` Will Deacon
2014-02-05  9:36               ` Vinayak Kale

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).