611611flush_cache_page (struct vm_area_struct * vma , unsigned long vmaddr , unsigned long pfn )
612612{
613613 if (pfn_valid (pfn )) {
614- flush_tlb_page (vma , vmaddr );
615614 if (likely (vma -> vm_mm -> context .space_id )) {
615+ flush_tlb_page (vma , vmaddr );
616616 __flush_cache_page (vma , vmaddr , PFN_PHYS (pfn ));
617617 } else {
618618 __purge_cache_page (vma , vmaddr , PFN_PHYS (pfn ));
@@ -624,7 +624,6 @@ void flush_kernel_vmap_range(void *vaddr, int size)
624624{
625625 unsigned long start = (unsigned long )vaddr ;
626626 unsigned long end = start + size ;
627- unsigned long flags , physaddr ;
628627
629628 if ((!IS_ENABLED (CONFIG_SMP ) || !arch_irqs_disabled ()) &&
630629 (unsigned long )size >= parisc_cache_flush_threshold ) {
@@ -633,22 +632,15 @@ void flush_kernel_vmap_range(void *vaddr, int size)
633632 return ;
634633 }
635634
636- while (start < end ) {
637- physaddr = lpa (start );
638- purge_tlb_start (flags );
639- pdtlb (SR_KERNEL , start );
640- purge_tlb_end (flags );
641- flush_dcache_page_asm (physaddr , start );
642- start += PAGE_SIZE ;
643- }
635+ flush_kernel_dcache_range_asm (start , end );
636+ flush_tlb_kernel_range (start , end );
644637}
645638EXPORT_SYMBOL (flush_kernel_vmap_range );
646639
647640void invalidate_kernel_vmap_range (void * vaddr , int size )
648641{
649642 unsigned long start = (unsigned long )vaddr ;
650643 unsigned long end = start + size ;
651- unsigned long flags , physaddr ;
652644
653645 if ((!IS_ENABLED (CONFIG_SMP ) || !arch_irqs_disabled ()) &&
654646 (unsigned long )size >= parisc_cache_flush_threshold ) {
@@ -657,13 +649,7 @@ void invalidate_kernel_vmap_range(void *vaddr, int size)
657649 return ;
658650 }
659651
660- while (start < end ) {
661- physaddr = lpa (start );
662- purge_tlb_start (flags );
663- pdtlb (SR_KERNEL , start );
664- purge_tlb_end (flags );
665- purge_dcache_page_asm (physaddr , start );
666- start += PAGE_SIZE ;
667- }
652+ purge_kernel_dcache_range_asm (start , end );
653+ flush_tlb_kernel_range (start , end );
668654}
669655EXPORT_SYMBOL (invalidate_kernel_vmap_range );
0 commit comments