• Max Filippov's avatar
    xtensa: fix cache aliasing handling code for WT cache · 03973c57
    Max Filippov authored
    commit 6d0f581d upstream.
    
    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.
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    03973c57
cache.c 7.87 KB