diff options
Diffstat (limited to 'arch/sh/mm/cache-sh7705.c')
| -rw-r--r-- | arch/sh/mm/cache-sh7705.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/sh/mm/cache-sh7705.c b/arch/sh/mm/cache-sh7705.c index 31f8deb7a158..4896d7376926 100644 --- a/arch/sh/mm/cache-sh7705.c +++ b/arch/sh/mm/cache-sh7705.c | |||
| @@ -3,11 +3,11 @@ | |||
| 3 | * | 3 | * |
| 4 | * Copyright (C) 1999, 2000 Niibe Yutaka | 4 | * Copyright (C) 1999, 2000 Niibe Yutaka |
| 5 | * Copyright (C) 2004 Alex Song | 5 | * Copyright (C) 2004 Alex Song |
| 6 | * Copyright (C) 2006 Paul Mundt | ||
| 7 | * | 6 | * |
| 8 | * This file is subject to the terms and conditions of the GNU General Public | 7 | * This file is subject to the terms and conditions of the GNU General Public |
| 9 | * License. See the file "COPYING" in the main directory of this archive | 8 | * License. See the file "COPYING" in the main directory of this archive |
| 10 | * for more details. | 9 | * for more details. |
| 10 | * | ||
| 11 | */ | 11 | */ |
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/mman.h> | 13 | #include <linux/mman.h> |
| @@ -51,6 +51,7 @@ static inline void cache_wback_all(void) | |||
| 51 | 51 | ||
| 52 | if ((data & v) == v) | 52 | if ((data & v) == v) |
| 53 | ctrl_outl(data & ~v, addr); | 53 | ctrl_outl(data & ~v, addr); |
| 54 | |||
| 54 | } | 55 | } |
| 55 | 56 | ||
| 56 | addrstart += current_cpu_data.dcache.way_incr; | 57 | addrstart += current_cpu_data.dcache.way_incr; |
| @@ -127,11 +128,7 @@ static void __flush_dcache_page(unsigned long phys) | |||
| 127 | */ | 128 | */ |
| 128 | void flush_dcache_page(struct page *page) | 129 | void flush_dcache_page(struct page *page) |
| 129 | { | 130 | { |
| 130 | struct address_space *mapping = page_mapping(page); | 131 | if (test_bit(PG_mapped, &page->flags)) |
| 131 | |||
| 132 | if (mapping && !mapping_mapped(mapping)) | ||
| 133 | set_bit(PG_dcache_dirty, &page->flags); | ||
| 134 | else | ||
| 135 | __flush_dcache_page(PHYSADDR(page_address(page))); | 132 | __flush_dcache_page(PHYSADDR(page_address(page))); |
| 136 | } | 133 | } |
| 137 | 134 | ||
