diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-01-05 12:27:46 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-05 12:27:46 +0900 |
commit | a7595fe7e8a93a73ce6199dace75a0caca7024c1 (patch) | |
tree | d8ed3959fe722ac5dad69285dea5537fc2535098 /arch/sh/mm/cache-sh4.c | |
parent | 921a220857cdd3c553cde7c114f9f6757ac80cd5 (diff) | |
parent | 2a5eacca85d39d8b6dffae821d7d260f05584dc7 (diff) | |
download | linux-a7595fe7e8a93a73ce6199dace75a0caca7024c1.tar.gz linux-a7595fe7e8a93a73ce6199dace75a0caca7024c1.tar.bz2 linux-a7595fe7e8a93a73ce6199dace75a0caca7024c1.zip |
Merge branch 'sh/pgtable' of git://github.com/mfleming/linux-2.6
Diffstat (limited to 'arch/sh/mm/cache-sh4.c')
-rw-r--r-- | arch/sh/mm/cache-sh4.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index 560ddb6bc8a7..a2301daeefa3 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c @@ -109,6 +109,7 @@ static inline void flush_cache_one(unsigned long start, unsigned long phys) static void sh4_flush_dcache_page(void *arg) { struct page *page = arg; + unsigned long addr = (unsigned long)page_address(page); #ifndef CONFIG_SMP struct address_space *mapping = page_mapping(page); @@ -116,16 +117,8 @@ static void sh4_flush_dcache_page(void *arg) set_bit(PG_dcache_dirty, &page->flags); else #endif - { - unsigned long phys = page_to_phys(page); - unsigned long addr = CACHE_OC_ADDRESS_ARRAY; - int i, n; - - /* Loop all the D-cache */ - n = boot_cpu_data.dcache.n_aliases; - for (i = 0; i < n; i++, addr += PAGE_SIZE) - flush_cache_one(addr, phys); - } + flush_cache_one(CACHE_OC_ADDRESS_ARRAY | + (addr & shm_align_mask), page_to_phys(page)); wmb(); } |