[ARM SMP] Disable lazy flush_dcache_page for SMP

Lazy flush_dcache_page() causes userspace instability on SMP
platforms, so disable it for now.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Russell King and committed by Russell King df2f5e72 d2ef5ebb

+6 -1
+6 -1
arch/arm/mm/flush.c
··· 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 157 * aliasing mappings. 158 */ 159 void flush_dcache_page(struct page *page) 160 { 161 struct address_space *mapping = page_mapping(page); 162 163 if (mapping && !mapping_mapped(mapping)) 164 set_bit(PG_dcache_dirty, &page->flags); 165 - else { 166 __flush_dcache_page(mapping, page); 167 if (mapping && cache_is_vivt()) 168 __flush_dcache_aliases(mapping, page);
··· 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 157 * aliasing mappings. 158 + * 159 + * Note that we disable the lazy flush for SMP. 160 */ 161 void flush_dcache_page(struct page *page) 162 { 163 struct address_space *mapping = page_mapping(page); 164 165 + #ifndef CONFIG_SMP 166 if (mapping && !mapping_mapped(mapping)) 167 set_bit(PG_dcache_dirty, &page->flags); 168 + else 169 + #endif 170 + { 171 __flush_dcache_page(mapping, page); 172 if (mapping && cache_is_vivt()) 173 __flush_dcache_aliases(mapping, page);