|
@@ -141,7 +141,7 @@ make_coherent(struct address_space *mapping, struct vm_area_struct *vma,
|
|
|
* a page table, or changing an existing PTE. Basically, there are two
|
|
|
* things that we need to take care of:
|
|
|
*
|
|
|
- * 1. If PG_dcache_dirty is set for the page, we need to ensure
|
|
|
+ * 1. If PG_dcache_clean is not set for the page, we need to ensure
|
|
|
* that any cache entries for the kernels virtual memory
|
|
|
* range are written back to the page.
|
|
|
* 2. If we have multiple shared mappings of the same space in
|
|
@@ -169,7 +169,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
|
|
|
|
|
|
mapping = page_mapping(page);
|
|
|
#ifndef CONFIG_SMP
|
|
|
- if (test_and_clear_bit(PG_dcache_dirty, &page->flags))
|
|
|
+ if (!test_and_set_bit(PG_dcache_clean, &page->flags))
|
|
|
__flush_dcache_page(mapping, page);
|
|
|
#endif
|
|
|
if (mapping) {
|