Commit a7f4ee1f authored by Michael Ellerman's avatar Michael Ellerman

powerpc: Drop return value of smp_ops->probe()

smp_ops->probe() is currently supposed to return the number of cpus in
the system.

The last actual usage of the value was removed in May 2007 in e147ec8f
"[POWERPC] Simplify smp_space_timers". We still passed the value around
until June 2010 when even that was finally removed in c1aa687d
"powerpc: Clean up obsolete code relating to decrementer and timebase".

So drop that requirement, probe() now returns void, and update all
implementations.
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 7261b956
...@@ -42,7 +42,7 @@ struct smp_ops_t { ...@@ -42,7 +42,7 @@ struct smp_ops_t {
#ifdef CONFIG_PPC_SMP_MUXED_IPI #ifdef CONFIG_PPC_SMP_MUXED_IPI
void (*cause_ipi)(int cpu, unsigned long data); void (*cause_ipi)(int cpu, unsigned long data);
#endif #endif
int (*probe)(void); void (*probe)(void);
int (*kick_cpu)(int nr); int (*kick_cpu)(int nr);
void (*setup_cpu)(int nr); void (*setup_cpu)(int nr);
void (*bringup_done)(void); void (*bringup_done)(void);
...@@ -174,7 +174,7 @@ static inline void set_hard_smp_processor_id(int cpu, int phys) ...@@ -174,7 +174,7 @@ static inline void set_hard_smp_processor_id(int cpu, int phys)
extern int smt_enabled_at_boot; extern int smt_enabled_at_boot;
extern int smp_mpic_probe(void); extern void smp_mpic_probe(void);
extern void smp_mpic_setup_cpu(int cpu); extern void smp_mpic_setup_cpu(int cpu);
extern int smp_generic_kick_cpu(int nr); extern int smp_generic_kick_cpu(int nr);
extern int smp_generic_cpu_bootable(unsigned int nr); extern int smp_generic_cpu_bootable(unsigned int nr);
......
...@@ -146,7 +146,7 @@ extern void xics_update_irq_servers(void); ...@@ -146,7 +146,7 @@ extern void xics_update_irq_servers(void);
extern void xics_set_cpu_giq(unsigned int gserver, unsigned int join); extern void xics_set_cpu_giq(unsigned int gserver, unsigned int join);
extern void xics_mask_unknown_vec(unsigned int vec); extern void xics_mask_unknown_vec(unsigned int vec);
extern irqreturn_t xics_ipi_dispatch(int cpu); extern irqreturn_t xics_ipi_dispatch(int cpu);
extern int xics_smp_probe(void); extern void xics_smp_probe(void);
extern void xics_register_ics(struct ics *ics); extern void xics_register_ics(struct ics *ics);
extern void xics_teardown_cpu(void); extern void xics_teardown_cpu(void);
extern void xics_kexec_teardown_cpu(int secondary); extern void xics_kexec_teardown_cpu(int secondary);
......
...@@ -102,13 +102,6 @@ static inline int smp_startup_cpu(unsigned int lcpu) ...@@ -102,13 +102,6 @@ static inline int smp_startup_cpu(unsigned int lcpu)
return 1; return 1;
} }
static int __init smp_iic_probe(void)
{
iic_request_IPIs();
return num_possible_cpus();
}
static void smp_cell_setup_cpu(int cpu) static void smp_cell_setup_cpu(int cpu)
{ {
if (cpu != boot_cpuid) if (cpu != boot_cpuid)
...@@ -139,7 +132,7 @@ static int smp_cell_kick_cpu(int nr) ...@@ -139,7 +132,7 @@ static int smp_cell_kick_cpu(int nr)
static struct smp_ops_t bpa_iic_smp_ops = { static struct smp_ops_t bpa_iic_smp_ops = {
.message_pass = iic_message_pass, .message_pass = iic_message_pass,
.probe = smp_iic_probe, .probe = iic_request_IPIs,
.kick_cpu = smp_cell_kick_cpu, .kick_cpu = smp_cell_kick_cpu,
.setup_cpu = smp_cell_setup_cpu, .setup_cpu = smp_cell_setup_cpu,
.cpu_bootable = smp_generic_cpu_bootable, .cpu_bootable = smp_generic_cpu_bootable,
......
...@@ -268,7 +268,7 @@ static void __init psurge_quad_init(void) ...@@ -268,7 +268,7 @@ static void __init psurge_quad_init(void)
mdelay(33); mdelay(33);
} }
static int __init smp_psurge_probe(void) static void __init smp_psurge_probe(void)
{ {
int i, ncpus; int i, ncpus;
struct device_node *dn; struct device_node *dn;
...@@ -766,7 +766,7 @@ static void __init smp_core99_setup(int ncpus) ...@@ -766,7 +766,7 @@ static void __init smp_core99_setup(int ncpus)
powersave_nap = 0; powersave_nap = 0;
} }
static int __init smp_core99_probe(void) static void __init smp_core99_probe(void)
{ {
struct device_node *cpus; struct device_node *cpus;
int ncpus = 0; int ncpus = 0;
...@@ -781,7 +781,7 @@ static int __init smp_core99_probe(void) ...@@ -781,7 +781,7 @@ static int __init smp_core99_probe(void)
/* Nothing more to do if less than 2 of them */ /* Nothing more to do if less than 2 of them */
if (ncpus <= 1) if (ncpus <= 1)
return 1; return;
/* We need to perform some early initialisations before we can start /* We need to perform some early initialisations before we can start
* setting up SMP as we are running before initcalls * setting up SMP as we are running before initcalls
...@@ -797,8 +797,6 @@ static int __init smp_core99_probe(void) ...@@ -797,8 +797,6 @@ static int __init smp_core99_probe(void)
/* Collect l2cr and l3cr values from CPU 0 */ /* Collect l2cr and l3cr values from CPU 0 */
core99_init_caches(0); core99_init_caches(0);
return ncpus;
} }
static int smp_core99_kick_cpu(int nr) static int smp_core99_kick_cpu(int nr)
......
...@@ -57,7 +57,7 @@ static void ps3_smp_message_pass(int cpu, int msg) ...@@ -57,7 +57,7 @@ static void ps3_smp_message_pass(int cpu, int msg)
" (%d)\n", __func__, __LINE__, cpu, msg, result); " (%d)\n", __func__, __LINE__, cpu, msg, result);
} }
static int __init ps3_smp_probe(void) static void __init ps3_smp_probe(void)
{ {
int cpu; int cpu;
...@@ -100,8 +100,6 @@ static int __init ps3_smp_probe(void) ...@@ -100,8 +100,6 @@ static int __init ps3_smp_probe(void)
DBG(" <- %s:%d: (%d)\n", __func__, __LINE__, cpu); DBG(" <- %s:%d: (%d)\n", __func__, __LINE__, cpu);
} }
return 2;
} }
void ps3_smp_cleanup_cpu(int cpu) void ps3_smp_cleanup_cpu(int cpu)
......
...@@ -197,16 +197,14 @@ static void pSeries_cause_ipi_mux(int cpu, unsigned long data) ...@@ -197,16 +197,14 @@ static void pSeries_cause_ipi_mux(int cpu, unsigned long data)
xics_cause_ipi(cpu, data); xics_cause_ipi(cpu, data);
} }
static __init int pSeries_smp_probe(void) static __init void pSeries_smp_probe(void)
{ {
int ret = xics_smp_probe(); xics_smp_probe();
if (cpu_has_feature(CPU_FTR_DBELL)) { if (cpu_has_feature(CPU_FTR_DBELL)) {
xics_cause_ipi = smp_ops->cause_ipi; xics_cause_ipi = smp_ops->cause_ipi;
smp_ops->cause_ipi = pSeries_cause_ipi_mux; smp_ops->cause_ipi = pSeries_cause_ipi_mux;
} }
return ret;
} }
static struct smp_ops_t pSeries_mpic_smp_ops = { static struct smp_ops_t pSeries_mpic_smp_ops = {
......
...@@ -1897,7 +1897,7 @@ void smp_mpic_message_pass(int cpu, int msg) ...@@ -1897,7 +1897,7 @@ void smp_mpic_message_pass(int cpu, int msg)
msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask); msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask);
} }
int __init smp_mpic_probe(void) void __init smp_mpic_probe(void)
{ {
int nr_cpus; int nr_cpus;
...@@ -1909,8 +1909,6 @@ int __init smp_mpic_probe(void) ...@@ -1909,8 +1909,6 @@ int __init smp_mpic_probe(void)
if (nr_cpus > 1) if (nr_cpus > 1)
mpic_request_ipis(); mpic_request_ipis();
return nr_cpus;
} }
void smp_mpic_setup_cpu(int cpu) void smp_mpic_setup_cpu(int cpu)
......
...@@ -140,15 +140,13 @@ static void xics_request_ipi(void) ...@@ -140,15 +140,13 @@ static void xics_request_ipi(void)
IRQF_PERCPU | IRQF_NO_THREAD, "IPI", NULL)); IRQF_PERCPU | IRQF_NO_THREAD, "IPI", NULL));
} }
int __init xics_smp_probe(void) void __init xics_smp_probe(void)
{ {
/* Setup cause_ipi callback based on which ICP is used */ /* Setup cause_ipi callback based on which ICP is used */
smp_ops->cause_ipi = icp_ops->cause_ipi; smp_ops->cause_ipi = icp_ops->cause_ipi;
/* Register all the IPIs */ /* Register all the IPIs */
xics_request_ipi(); xics_request_ipi();
return num_possible_cpus();
} }
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment