diff options
Diffstat (limited to 'arch/sh/mm/cache-sh4.c')
| -rw-r--r-- | arch/sh/mm/cache-sh4.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index e0cd4b7f4aeb..981b04089055 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c | |||
| @@ -237,20 +237,10 @@ static inline void flush_cache_4096(unsigned long start, | |||
| 237 | /* | 237 | /* |
| 238 | * Write back & invalidate the D-cache of the page. | 238 | * Write back & invalidate the D-cache of the page. |
| 239 | * (To avoid "alias" issues) | 239 | * (To avoid "alias" issues) |
| 240 | * | ||
| 241 | * This uses a lazy write-back on UP, which is explicitly | ||
| 242 | * disabled on SMP. | ||
| 243 | */ | 240 | */ |
| 244 | void flush_dcache_page(struct page *page) | 241 | void flush_dcache_page(struct page *page) |
| 245 | { | 242 | { |
| 246 | #ifndef CONFIG_SMP | 243 | if (test_bit(PG_mapped, &page->flags)) { |
| 247 | struct address_space *mapping = page_mapping(page); | ||
| 248 | |||
| 249 | if (mapping && !mapping_mapped(mapping)) | ||
| 250 | set_bit(PG_dcache_dirty, &page->flags); | ||
| 251 | else | ||
| 252 | #endif | ||
| 253 | { | ||
| 254 | unsigned long phys = PHYSADDR(page_address(page)); | 244 | unsigned long phys = PHYSADDR(page_address(page)); |
| 255 | unsigned long addr = CACHE_OC_ADDRESS_ARRAY; | 245 | unsigned long addr = CACHE_OC_ADDRESS_ARRAY; |
| 256 | int i, n; | 246 | int i, n; |
