diff mbox

Probably cache synchronization issue on SH7723

Message ID 20091222165150.GA7254@console-pimps.org (mailing list archive)
State Rejected
Headers show

Commit Message

Matt Fleming Dec. 22, 2009, 4:51 p.m. UTC
None
diff mbox

Patch

diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index e9415d3..8460bbf 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -126,8 +126,9 @@  void __update_cache(struct vm_area_struct *vma,
 {
 	struct page *page;
 	unsigned long pfn = pte_pfn(pte);
+	int exec = (vma->vm_flags & VM_EXEC);
 
-	if (!boot_cpu_data.dcache.n_aliases)
+	if (!boot_cpu_data.dcache.n_aliases && !exec)
 		return;
 
 	page = pfn_to_page(pfn);
@@ -136,7 +137,7 @@  void __update_cache(struct vm_area_struct *vma,
 		if (dirty) {
 			unsigned long addr = (unsigned long)page_address(page);
 
-			if (pages_do_alias(addr, address & PAGE_MASK))
+			if (exec || pages_do_alias(addr, address & PAGE_MASK))
 				__flush_purge_region((void *)addr, PAGE_SIZE);
 		}
 	}