]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
xtensa: fix cache aliasing handling code for WT cache
authorMax Filippov <jcmvbkbc@gmail.com>
Sat, 29 Jul 2017 00:42:59 +0000 (17:42 -0700)
committerMax Filippov <jcmvbkbc@gmail.com>
Sat, 29 Jul 2017 01:35:13 +0000 (18:35 -0700)
commit6d0f581d1768d3eaba15776e7dd1fdfec10cfe36
treebc94af25f0162390340982ddd3c97f10bc577bdf
parent536dcc9c34035778892a7e3cbf45166ce73f8d34
xtensa: fix cache aliasing handling code for WT cache

Currently building kernel for xtensa core with aliasing WT cache fails
with the following messages:

  mm/memory.c:2152: undefined reference to `flush_dcache_page'
  mm/memory.c:2332: undefined reference to `local_flush_cache_page'
  mm/memory.c:1919: undefined reference to `local_flush_cache_range'
  mm/memory.c:4179: undefined reference to `copy_to_user_page'
  mm/memory.c:4183: undefined reference to `copy_from_user_page'

This happens because implementation of these functions is only compiled
when data cache is WB, which looks wrong: even when data cache doesn't
need flushing it still needs invalidation. The functions like
__flush_[invalidate_]dcache_* are correctly defined for both WB and WT
caches (and even if they weren't that'd still be ok, just slower).

Fix this by providing the same implementation of the above functions for
both WB and WT cache.

Cc: stable@vger.kernel.org
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/mm/cache.c