Loading arch/sparc64/kernel/smp.c +13 −6 Original line number Diff line number Diff line Loading @@ -756,6 +756,8 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t printk("]\n"); } static void (*xcall_deliver)(u64, u64, u64, cpumask_t); /* Send cross call to all processors mentioned in MASK * except self. */ Loading @@ -767,12 +769,7 @@ static void smp_cross_call_masked(unsigned long *func, u32 ctx, u64 data1, u64 d cpus_and(mask, mask, cpu_online_map); cpu_clear(this_cpu, mask); if (tlb_type == spitfire) spitfire_xcall_deliver(data0, data1, data2, mask); else if (tlb_type == cheetah || tlb_type == cheetah_plus) cheetah_xcall_deliver(data0, data1, data2, mask); else hypervisor_xcall_deliver(data0, data1, data2, mask); xcall_deliver(data0, data1, data2, mask); /* NOTE: Caller runs local copy on master. */ put_cpu(); Loading Loading @@ -1202,6 +1199,16 @@ void __devinit smp_prepare_boot_cpu(void) { } void __init smp_setup_processor_id(void) { if (tlb_type == spitfire) xcall_deliver = spitfire_xcall_deliver; else if (tlb_type == cheetah || tlb_type == cheetah_plus) xcall_deliver = cheetah_xcall_deliver; else xcall_deliver = hypervisor_xcall_deliver; } void __devinit smp_fill_in_sib_core_maps(void) { unsigned int i; Loading Loading
arch/sparc64/kernel/smp.c +13 −6 Original line number Diff line number Diff line Loading @@ -756,6 +756,8 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t printk("]\n"); } static void (*xcall_deliver)(u64, u64, u64, cpumask_t); /* Send cross call to all processors mentioned in MASK * except self. */ Loading @@ -767,12 +769,7 @@ static void smp_cross_call_masked(unsigned long *func, u32 ctx, u64 data1, u64 d cpus_and(mask, mask, cpu_online_map); cpu_clear(this_cpu, mask); if (tlb_type == spitfire) spitfire_xcall_deliver(data0, data1, data2, mask); else if (tlb_type == cheetah || tlb_type == cheetah_plus) cheetah_xcall_deliver(data0, data1, data2, mask); else hypervisor_xcall_deliver(data0, data1, data2, mask); xcall_deliver(data0, data1, data2, mask); /* NOTE: Caller runs local copy on master. */ put_cpu(); Loading Loading @@ -1202,6 +1199,16 @@ void __devinit smp_prepare_boot_cpu(void) { } void __init smp_setup_processor_id(void) { if (tlb_type == spitfire) xcall_deliver = spitfire_xcall_deliver; else if (tlb_type == cheetah || tlb_type == cheetah_plus) xcall_deliver = cheetah_xcall_deliver; else xcall_deliver = hypervisor_xcall_deliver; } void __devinit smp_fill_in_sib_core_maps(void) { unsigned int i; Loading