diff options
Diffstat (limited to 'arch/arc/mm/cache_arc700.c')
-rw-r--r-- | arch/arc/mm/cache_arc700.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/arch/arc/mm/cache_arc700.c b/arch/arc/mm/cache_arc700.c index 2f12bca8aef3..aedce1905441 100644 --- a/arch/arc/mm/cache_arc700.c +++ b/arch/arc/mm/cache_arc700.c | |||
@@ -610,7 +610,7 @@ void __sync_icache_dcache(unsigned long paddr, unsigned long vaddr, int len) | |||
610 | 610 | ||
611 | local_irq_save(flags); | 611 | local_irq_save(flags); |
612 | __ic_line_inv_vaddr(paddr, vaddr, len); | 612 | __ic_line_inv_vaddr(paddr, vaddr, len); |
613 | __dc_line_op(paddr, vaddr, len, OP_FLUSH); | 613 | __dc_line_op(paddr, vaddr, len, OP_FLUSH_N_INV); |
614 | local_irq_restore(flags); | 614 | local_irq_restore(flags); |
615 | } | 615 | } |
616 | 616 | ||
@@ -676,6 +676,17 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, | |||
676 | flush_cache_all(); | 676 | flush_cache_all(); |
677 | } | 677 | } |
678 | 678 | ||
679 | void flush_anon_page(struct vm_area_struct *vma, struct page *page, | ||
680 | unsigned long u_vaddr) | ||
681 | { | ||
682 | /* TBD: do we really need to clear the kernel mapping */ | ||
683 | __flush_dcache_page(page_address(page), u_vaddr); | ||
684 | __flush_dcache_page(page_address(page), page_address(page)); | ||
685 | |||
686 | } | ||
687 | |||
688 | #endif | ||
689 | |||
679 | void copy_user_highpage(struct page *to, struct page *from, | 690 | void copy_user_highpage(struct page *to, struct page *from, |
680 | unsigned long u_vaddr, struct vm_area_struct *vma) | 691 | unsigned long u_vaddr, struct vm_area_struct *vma) |
681 | { | 692 | { |
@@ -725,16 +736,6 @@ void clear_user_page(void *to, unsigned long u_vaddr, struct page *page) | |||
725 | set_bit(PG_arch_1, &page->flags); | 736 | set_bit(PG_arch_1, &page->flags); |
726 | } | 737 | } |
727 | 738 | ||
728 | void flush_anon_page(struct vm_area_struct *vma, struct page *page, | ||
729 | unsigned long u_vaddr) | ||
730 | { | ||
731 | /* TBD: do we really need to clear the kernel mapping */ | ||
732 | __flush_dcache_page(page_address(page), u_vaddr); | ||
733 | __flush_dcache_page(page_address(page), page_address(page)); | ||
734 | |||
735 | } | ||
736 | |||
737 | #endif | ||
738 | 739 | ||
739 | /********************************************************************** | 740 | /********************************************************************** |
740 | * Explicit Cache flush request from user space via syscall | 741 | * Explicit Cache flush request from user space via syscall |