Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARC: [mm] optimise VIPT dcache aliasing 1/x

flush_cache_page() - kills icache only if page is executable

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>

+6 -1
+6 -1
arch/arc/mm/cache_arc700.c
··· 679 679 { 680 680 unsigned int paddr = pfn << PAGE_SHIFT; 681 681 682 - __sync_icache_dcache(paddr, u_vaddr, PAGE_SIZE); 682 + u_vaddr &= PAGE_MASK; 683 + 684 + ___flush_dcache_page(paddr, u_vaddr); 685 + 686 + if (vma->vm_flags & VM_EXEC) 687 + __inv_icache_page(paddr, u_vaddr); 683 688 } 684 689 685 690 void flush_cache_range(struct vm_area_struct *vma, unsigned long start,