csky: Fixup 610 vipt cache flush mechanism
authorGuo Ren <ren_guo@c-sky.com>
Wed, 21 Aug 2019 11:15:52 +0000 (19:15 +0800)
committerGuo Ren <ren_guo@c-sky.com>
Thu, 22 Aug 2019 02:44:24 +0000 (10:44 +0800)
commit4ad35c1f56386c8e7019c921bba1af109fde9693
treeb9aa9baf63834a4eca3e23b4afc6c119cf33ee6e
parentc7e6f0e99227b3dcdc5e62f789119e000887ff79
csky: Fixup 610 vipt cache flush mechanism

610 has vipt aliasing issue, so we need to finish the cache flush
apis mentioned in cachetlb.rst to avoid data corruption.

Here is the list of modified apis in the patch:

 - flush_kernel_dcache_page      (new add)
 - flush_dcache_mmap_lock        (new add)
 - flush_dcache_mmap_unlock      (new add)
 - flush_kernel_vmap_range       (new add)
 - invalidate_kernel_vmap_range  (new add)
 - flush_anon_page               (new add)
 - flush_cache_range             (new add)
 - flush_cache_vmap              (flush all)
 - flush_cache_vunmap            (flush all)
 - flush_cache_mm                (only dcache flush)
 - flush_icache_page             (just nop)
 - copy_from_user_page           (remove no need flush)
 - copy_to_user_page             (remove no need flush)

Change to V2:
 - Fixup compile error with xa_lock*(&mapping->i_pages)

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Christoph Hellwig <hch@infradead.org>
arch/csky/abiv1/cacheflush.c
arch/csky/abiv1/inc/abi/cacheflush.h