ARM: 6379/1: Assume new page cache pages have dirty D-cache
There are places in Linux where writes to newly allocated page cache pages happen without a subsequent call to flush_dcache_page() (several PIO drivers including USB HCD). This patch changes the meaning of PG_arch_1 to be PG_dcache_clean and always flush the D-cache for a newly mapped page in update_mmu_cache(). The patch also sets the PG_arch_1 bit in the DMA cache maintenance function to avoid additional cache flushing in update_mmu_cache(). Tested-by: Rabin Vincent <rabin.vincent@stericsson.com> Cc: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
0fc73099dd
commit
c01778001a
@ -73,7 +73,7 @@ void v4_mc_copy_user_highpage(struct page *to, struct page *from,
|
||||
{
|
||||
void *kto = kmap_atomic(to, KM_USER1);
|
||||
|
||||
if (test_and_clear_bit(PG_dcache_dirty, &from->flags))
|
||||
if (!test_and_set_bit(PG_dcache_clean, &from->flags))
|
||||
__flush_dcache_page(page_mapping(from), from);
|
||||
|
||||
spin_lock(&minicache_lock);
|
||||
|
Reference in New Issue
Block a user