sparc32: Move cache and TLB flushes over to method ops.
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / sparc / kernel / smp_32.c
index 7c11439..8cd5c79 100644 (file)
@@ -171,128 +171,6 @@ void smp_call_function_interrupt(void)
        irq_exit();
 }
 
-void smp_flush_cache_all(void)
-{
-       xc0((smpfunc_t) BTFIXUP_CALL(local_flush_cache_all));
-       local_flush_cache_all();
-}
-
-void smp_flush_tlb_all(void)
-{
-       xc0((smpfunc_t) BTFIXUP_CALL(local_flush_tlb_all));
-       local_flush_tlb_all();
-}
-
-void smp_flush_cache_mm(struct mm_struct *mm)
-{
-       if(mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask))
-                       xc1((smpfunc_t) BTFIXUP_CALL(local_flush_cache_mm), (unsigned long) mm);
-               local_flush_cache_mm(mm);
-       }
-}
-
-void smp_flush_tlb_mm(struct mm_struct *mm)
-{
-       if(mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask)) {
-                       xc1((smpfunc_t) BTFIXUP_CALL(local_flush_tlb_mm), (unsigned long) mm);
-                       if(atomic_read(&mm->mm_users) == 1 && current->active_mm == mm)
-                               cpumask_copy(mm_cpumask(mm),
-                                            cpumask_of(smp_processor_id()));
-               }
-               local_flush_tlb_mm(mm);
-       }
-}
-
-void smp_flush_cache_range(struct vm_area_struct *vma, unsigned long start,
-                          unsigned long end)
-{
-       struct mm_struct *mm = vma->vm_mm;
-
-       if (mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask))
-                       xc3((smpfunc_t) BTFIXUP_CALL(local_flush_cache_range), (unsigned long) vma, start, end);
-               local_flush_cache_range(vma, start, end);
-       }
-}
-
-void smp_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
-                        unsigned long end)
-{
-       struct mm_struct *mm = vma->vm_mm;
-
-       if (mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask))
-                       xc3((smpfunc_t) BTFIXUP_CALL(local_flush_tlb_range), (unsigned long) vma, start, end);
-               local_flush_tlb_range(vma, start, end);
-       }
-}
-
-void smp_flush_cache_page(struct vm_area_struct *vma, unsigned long page)
-{
-       struct mm_struct *mm = vma->vm_mm;
-
-       if(mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask))
-                       xc2((smpfunc_t) BTFIXUP_CALL(local_flush_cache_page), (unsigned long) vma, page);
-               local_flush_cache_page(vma, page);
-       }
-}
-
-void smp_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-{
-       struct mm_struct *mm = vma->vm_mm;
-
-       if(mm->context != NO_CONTEXT) {
-               cpumask_t cpu_mask;
-               cpumask_copy(&cpu_mask, mm_cpumask(mm));
-               cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-               if (!cpumask_empty(&cpu_mask))
-                       xc2((smpfunc_t) BTFIXUP_CALL(local_flush_tlb_page), (unsigned long) vma, page);
-               local_flush_tlb_page(vma, page);
-       }
-}
-
-void smp_flush_page_to_ram(unsigned long page)
-{
-       /* Current theory is that those who call this are the one's
-        * who have just dirtied their cache with the pages contents
-        * in kernel space, therefore we only run this on local cpu.
-        *
-        * XXX This experiment failed, research further... -DaveM
-        */
-#if 1
-       xc1((smpfunc_t) BTFIXUP_CALL(local_flush_page_to_ram), page);
-#endif
-       local_flush_page_to_ram(page);
-}
-
-void smp_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr)
-{
-       cpumask_t cpu_mask;
-       cpumask_copy(&cpu_mask, mm_cpumask(mm));
-       cpumask_clear_cpu(smp_processor_id(), &cpu_mask);
-       if (!cpumask_empty(&cpu_mask))
-               xc2((smpfunc_t) BTFIXUP_CALL(local_flush_sig_insns), (unsigned long) mm, insn_addr);
-       local_flush_sig_insns(mm, insn_addr);
-}
-
 int setup_profiling_timer(unsigned int multiplier)
 {
        return -EINVAL;