diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/asm/topology_64.h | 6 | ||||
-rw-r--r-- | arch/sparc/kernel/smp_32.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 1 |
3 files changed, 9 insertions, 2 deletions
diff --git a/arch/sparc/include/asm/topology_64.h b/arch/sparc/include/asm/topology_64.h index 1c79f32734a0..8b9c556d630b 100644 --- a/arch/sparc/include/asm/topology_64.h +++ b/arch/sparc/include/asm/topology_64.h | |||
@@ -65,6 +65,10 @@ static inline int pcibus_to_node(struct pci_bus *pbus) | |||
65 | #define smt_capable() (sparc64_multi_core) | 65 | #define smt_capable() (sparc64_multi_core) |
66 | #endif /* CONFIG_SMP */ | 66 | #endif /* CONFIG_SMP */ |
67 | 67 | ||
68 | #define cpu_coregroup_mask(cpu) (&cpu_core_map[cpu]) | 68 | extern cpumask_t cpu_core_map[NR_CPUS]; |
69 | static inline const struct cpumask *cpu_coregroup_mask(int cpu) | ||
70 | { | ||
71 | return &cpu_core_map[cpu]; | ||
72 | } | ||
69 | 73 | ||
70 | #endif /* _ASM_SPARC64_TOPOLOGY_H */ | 74 | #endif /* _ASM_SPARC64_TOPOLOGY_H */ |
diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c index 850a1360c0d6..442286d83435 100644 --- a/arch/sparc/kernel/smp_32.c +++ b/arch/sparc/kernel/smp_32.c | |||
@@ -129,7 +129,9 @@ struct linux_prom_registers smp_penguin_ctable __cpuinitdata = { 0 }; | |||
129 | 129 | ||
130 | void smp_send_reschedule(int cpu) | 130 | void smp_send_reschedule(int cpu) |
131 | { | 131 | { |
132 | /* See sparc64 */ | 132 | /* |
133 | * XXX missing reschedule IPI, see scheduler_ipi() | ||
134 | */ | ||
133 | } | 135 | } |
134 | 136 | ||
135 | void smp_send_stop(void) | 137 | void smp_send_stop(void) |
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index 3e94a8c23238..9478da7fdb3e 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -1368,6 +1368,7 @@ void smp_send_reschedule(int cpu) | |||
1368 | void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs) | 1368 | void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs) |
1369 | { | 1369 | { |
1370 | clear_softint(1 << irq); | 1370 | clear_softint(1 << irq); |
1371 | scheduler_ipi(); | ||
1371 | } | 1372 | } |
1372 | 1373 | ||
1373 | /* This is a nop because we capture all other cpus | 1374 | /* This is a nop because we capture all other cpus |