diff options
Diffstat (limited to 'arch/sh/mm/cache-sh4.c')
| -rw-r--r-- | arch/sh/mm/cache-sh4.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index 2cfae81914a..51d8f7f31d1 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c @@ -18,6 +18,7 @@  #include <linux/highmem.h>  #include <asm/pgtable.h>  #include <asm/mmu_context.h> +#include <asm/cache_insns.h>  #include <asm/cacheflush.h>  /* @@ -114,7 +115,7 @@ static void sh4_flush_dcache_page(void *arg)  	struct address_space *mapping = page_mapping(page);  	if (mapping && !mapping_mapped(mapping)) -		set_bit(PG_dcache_dirty, &page->flags); +		clear_bit(PG_dcache_clean, &page->flags);  	else  #endif  		flush_cache_one(CACHE_OC_ADDRESS_ARRAY | @@ -132,9 +133,9 @@ static void flush_icache_all(void)  	jump_to_uncached();  	/* Flush I-cache */ -	ccr = __raw_readl(CCR); +	ccr = __raw_readl(SH_CCR);  	ccr |= CCR_CACHE_ICI; -	__raw_writel(ccr, CCR); +	__raw_writel(ccr, SH_CCR);  	/*  	 * back_to_cached() will take care of the barrier for us, don't add @@ -239,12 +240,12 @@ static void sh4_flush_cache_page(void *args)  		 * another ASID than the current one.  		 */  		map_coherent = (current_cpu_data.dcache.n_aliases && -			!test_bit(PG_dcache_dirty, &page->flags) && +			test_bit(PG_dcache_clean, &page->flags) &&  			page_mapped(page));  		if (map_coherent)  			vaddr = kmap_coherent(page, address);  		else -			vaddr = kmap_atomic(page, KM_USER0); +			vaddr = kmap_atomic(page);  		address = (unsigned long)vaddr;  	} @@ -259,7 +260,7 @@ static void sh4_flush_cache_page(void *args)  		if (map_coherent)  			kunmap_coherent(vaddr);  		else -			kunmap_atomic(vaddr, KM_USER0); +			kunmap_atomic(vaddr);  	}  }  | 
