diff options
-rw-r--r-- | arch/arm/mm/flush.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index c9a03981b785..330695b6b19d 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -155,14 +155,19 @@ static void __flush_dcache_aliases(struct address_space *mapping, struct page *p | |||
155 | * space mappings, we can be lazy and remember that we may have dirty | 155 | * space mappings, we can be lazy and remember that we may have dirty |
156 | * kernel cache lines for later. Otherwise, we assume we have | 156 | * kernel cache lines for later. Otherwise, we assume we have |
157 | * aliasing mappings. | 157 | * aliasing mappings. |
158 | * | ||
159 | * Note that we disable the lazy flush for SMP. | ||
158 | */ | 160 | */ |
159 | void flush_dcache_page(struct page *page) | 161 | void flush_dcache_page(struct page *page) |
160 | { | 162 | { |
161 | struct address_space *mapping = page_mapping(page); | 163 | struct address_space *mapping = page_mapping(page); |
162 | 164 | ||
165 | #ifndef CONFIG_SMP | ||
163 | if (mapping && !mapping_mapped(mapping)) | 166 | if (mapping && !mapping_mapped(mapping)) |
164 | set_bit(PG_dcache_dirty, &page->flags); | 167 | set_bit(PG_dcache_dirty, &page->flags); |
165 | else { | 168 | else |
169 | #endif | ||
170 | { | ||
166 | __flush_dcache_page(mapping, page); | 171 | __flush_dcache_page(mapping, page); |
167 | if (mapping && cache_is_vivt()) | 172 | if (mapping && cache_is_vivt()) |
168 | __flush_dcache_aliases(mapping, page); | 173 | __flush_dcache_aliases(mapping, page); |