--- zzzz-none-000/linux-4.9.218/arch/mips/mm/cache.c 2020-04-02 15:20:41.000000000 +0000 +++ seale-7590ac-750/linux-4.9.218/arch/mips/mm/cache.c 2022-11-30 09:46:19.000000000 +0000 @@ -63,6 +63,8 @@ void (*_dma_cache_inv)(unsigned long start, unsigned long size); EXPORT_SYMBOL(_dma_cache_wback_inv); +EXPORT_SYMBOL(_dma_cache_wback); +EXPORT_SYMBOL(_dma_cache_inv); #endif /* CONFIG_DMA_NONCOHERENT || CONFIG_DMA_MAYBE_COHERENT */ @@ -115,6 +117,13 @@ { unsigned long addr = (unsigned long) page_address(page); + if (PageHighMem(page)) { + addr = (unsigned long)kmap_atomic(page); + flush_data_cache_page(addr); + __kunmap_atomic((void *)addr); + return; + } + if (pages_do_alias(addr, vmaddr)) { if (page_mapcount(page) && !Page_dcache_dirty(page)) { void *kaddr;