From fedf5b9bafca5cd8af99993d1b9cfd13c1dc2c5b Mon Sep 17 00:00:00 2001
From: Vineet Gupta <vgupta@synopsys.com>
Date: Thu, 23 May 2013 12:02:00 +0530
Subject: [PATCH] ARC: [mm] optimise VIPT dcache aliasing 2/x

Non-congruent SRC page in copy_user_page() is dcache clean in the end -
so record that fact, to avoid a subsequent extraneous flush.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 arch/arc/mm/cache_arc700.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arc/mm/cache_arc700.c b/arch/arc/mm/cache_arc700.c
index 4e54ef5b4c2a4..074658704d868 100644
--- a/arch/arc/mm/cache_arc700.c
+++ b/arch/arc/mm/cache_arc700.c
@@ -742,6 +742,7 @@ void copy_user_highpage(struct page *to, struct page *from,
 	 */
 	if (clean_src_k_mappings) {
 		__flush_dcache_page(kfrom, kfrom);
+		clear_bit(PG_arch_1, &from->flags);
 	} else {
 		set_bit(PG_arch_1, &from->flags);
 	}