]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit211a07fd6e67295fa7fcc6ec58b7413d5bd8b10c
treeb9aa9baf63834a4eca3e23b4afc6c119cf33ee6e
parent5492f2123b95ccd1716048fd4959e2088a8b164b
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