X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=arch%2Fsparc%2Fkernel%2Fsun4m_smp.c;fp=arch%2Fsparc%2Fkernel%2Fsun4m_smp.c;h=afcf6743f0eb859902161a2686183567119188c8;hb=5d83d66635bb1642f3c6a3690c28ff4afdf1ae5f;hp=29f8ace10b596949302513f564d1acfc95ef108d;hpb=b25e74b1be321613bf33492cd9d2e5dd0924562d;p=cascardo%2Flinux.git diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c index 29f8ace10b59..afcf6743f0eb 100644 --- a/arch/sparc/kernel/sun4m_smp.c +++ b/arch/sparc/kernel/sun4m_smp.c @@ -8,12 +8,14 @@ #include #include #include +#include #include #include #include #include #include +#include #include "irq.h" #include "kernel.h" @@ -38,8 +40,8 @@ void __cpuinit smp4m_callin(void) { int cpuid = hard_smp_processor_id(); - local_flush_cache_all(); - local_flush_tlb_all(); + local_ops->cache_all(); + local_ops->tlb_all(); notify_cpu_starting(cpuid); @@ -48,8 +50,8 @@ void __cpuinit smp4m_callin(void) calibrate_delay(); smp_store_cpu_info(cpuid); - local_flush_cache_all(); - local_flush_tlb_all(); + local_ops->cache_all(); + local_ops->tlb_all(); /* * Unblock the master CPU _only_ when the scheduler state @@ -61,8 +63,8 @@ void __cpuinit smp4m_callin(void) swap_ulong(&cpu_callin_map[cpuid], 1); /* XXX: What's up with all the flushes? */ - local_flush_cache_all(); - local_flush_tlb_all(); + local_ops->cache_all(); + local_ops->tlb_all(); /* Fix idle thread fields. */ __asm__ __volatile__("ld [%0], %%g6\n\t" @@ -88,7 +90,7 @@ void __init smp4m_boot_cpus(void) { smp4m_ipi_init(); sun4m_unmask_profile_irq(); - local_flush_cache_all(); + local_ops->cache_all(); } int __cpuinit smp4m_boot_one_cpu(int i) @@ -117,7 +119,7 @@ int __cpuinit smp4m_boot_one_cpu(int i) /* whirrr, whirrr, whirrrrrrrrr... */ printk(KERN_INFO "Starting CPU %d at %p\n", i, entry); - local_flush_cache_all(); + local_ops->cache_all(); prom_startcpu(cpu_node, &smp_penguin_ctable, 0, (char *)entry); /* wheee... it's going... */ @@ -132,7 +134,7 @@ int __cpuinit smp4m_boot_one_cpu(int i) return -ENODEV; } - local_flush_cache_all(); + local_ops->cache_all(); return 0; } @@ -149,7 +151,7 @@ void __init smp4m_smp_done(void) prev = &cpu_data(i).next; } *prev = first; - local_flush_cache_all(); + local_ops->cache_all(); /* Ok, they are spinning and ready to go. */ }