|
@@ -41,6 +41,14 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to,
|
|
|
kfrom = kmap_atomic(from, KM_USER0);
|
|
|
kto = kmap_atomic(to, KM_USER1);
|
|
|
copy_page(kto, kfrom);
|
|
|
+#ifdef CONFIG_HIGHMEM
|
|
|
+ /*
|
|
|
+ * kmap_atomic() doesn't set the page virtual address, and
|
|
|
+ * kunmap_atomic() takes care of cache flushing already.
|
|
|
+ */
|
|
|
+ if (page_address(to) != NULL)
|
|
|
+#endif
|
|
|
+ __cpuc_flush_dcache_page(kto);
|
|
|
kunmap_atomic(kto, KM_USER1);
|
|
|
kunmap_atomic(kfrom, KM_USER0);
|
|
|
}
|