powerpc: Drop return value of smp_ops->probe()
authorMichael Ellerman <mpe@ellerman.id.au>
Sat, 4 Apr 2015 08:28:50 +0000 (19:28 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 10 Apr 2015 10:02:49 +0000 (20:02 +1000)
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 e147ec8f1808
"[POWERPC] Simplify smp_space_timers". We still passed the value around
until June 2010 when even that was finally removed in c1aa687d499a
"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: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/smp.h
arch/powerpc/include/asm/xics.h
arch/powerpc/platforms/cell/smp.c
arch/powerpc/platforms/powermac/smp.c
arch/powerpc/platforms/ps3/smp.c
arch/powerpc/platforms/pseries/smp.c
arch/powerpc/sysdev/mpic.c
arch/powerpc/sysdev/xics/xics-common.c

index 7c19959cd705f9e530704f9e782d436f03b14724..825663c309450ea22c39d38a3d8fb9cd2b20736e 100644 (file)
@@ -42,7 +42,7 @@ struct smp_ops_t {
 #ifdef CONFIG_PPC_SMP_MUXED_IPI
        void  (*cause_ipi)(int cpu, unsigned long data);
 #endif
-       int   (*probe)(void);
+       void  (*probe)(void);
        int   (*kick_cpu)(int nr);
        void  (*setup_cpu)(int nr);
        void  (*bringup_done)(void);
@@ -174,7 +174,7 @@ static inline void set_hard_smp_processor_id(int cpu, int phys)
 
 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 int smp_generic_kick_cpu(int nr);
 extern int smp_generic_cpu_bootable(unsigned int nr);
index 6997f4a271dfa9fe2cf37dfbf48106ffe2f59d1d..0e25bdb190bbb8edd92376d7c6a55a730dc84a48 100644 (file)
@@ -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_mask_unknown_vec(unsigned int vec);
 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_teardown_cpu(void);
 extern void xics_kexec_teardown_cpu(int secondary);
index b64e7ead752f20e95926f8c5424647e70d590886..895560f4be69ac0bc1d71de7e11919a0ba69524c 100644 (file)
@@ -102,13 +102,6 @@ static inline int smp_startup_cpu(unsigned int lcpu)
        return 1;
 }
 
-static int __init smp_iic_probe(void)
-{
-       iic_request_IPIs();
-
-       return num_possible_cpus();
-}
-
 static void smp_cell_setup_cpu(int cpu)
 {
        if (cpu != boot_cpuid)
@@ -139,7 +132,7 @@ static int smp_cell_kick_cpu(int nr)
 
 static struct smp_ops_t bpa_iic_smp_ops = {
        .message_pass   = iic_message_pass,
-       .probe          = smp_iic_probe,
+       .probe          = iic_request_IPIs,
        .kick_cpu       = smp_cell_kick_cpu,
        .setup_cpu      = smp_cell_setup_cpu,
        .cpu_bootable   = smp_generic_cpu_bootable,
index af094ae03dbbc9dfddec65e69da279d3ab8a0b7f..f84ac7ee11070909d9cec9fe82f97c77aa63cd01 100644 (file)
@@ -268,7 +268,7 @@ static void __init psurge_quad_init(void)
        mdelay(33);
 }
 
-static int __init smp_psurge_probe(void)
+static void __init smp_psurge_probe(void)
 {
        int i, ncpus;
        struct device_node *dn;
@@ -766,7 +766,7 @@ static void __init smp_core99_setup(int ncpus)
                powersave_nap = 0;
 }
 
-static int __init smp_core99_probe(void)
+static void __init smp_core99_probe(void)
 {
        struct device_node *cpus;
        int ncpus = 0;
@@ -781,7 +781,7 @@ static int __init smp_core99_probe(void)
 
        /* Nothing more to do if less than 2 of them */
        if (ncpus <= 1)
-               return 1;
+               return;
 
        /* We need to perform some early initialisations before we can start
         * setting up SMP as we are running before initcalls
@@ -797,8 +797,6 @@ static int __init smp_core99_probe(void)
 
        /* Collect l2cr and l3cr values from CPU 0 */
        core99_init_caches(0);
-
-       return ncpus;
 }
 
 static int smp_core99_kick_cpu(int nr)
index b358bec6c8cb16837aa460bbd6c9908cf9abf093..3c7707af3384deb373ba3815f7158082a2097fb2 100644 (file)
@@ -57,7 +57,7 @@ static void ps3_smp_message_pass(int cpu, int msg)
                        " (%d)\n", __func__, __LINE__, cpu, msg, result);
 }
 
-static int __init ps3_smp_probe(void)
+static void __init ps3_smp_probe(void)
 {
        int cpu;
 
@@ -100,8 +100,6 @@ static int __init ps3_smp_probe(void)
 
                DBG(" <- %s:%d: (%d)\n", __func__, __LINE__, cpu);
        }
-
-       return 2;
 }
 
 void ps3_smp_cleanup_cpu(int cpu)
index a3555b10c1a54dc3d13cd6feb4a5d2301c64343e..6932ea803e33594fb0e89e21bed1edfe255aef08 100644 (file)
@@ -197,16 +197,14 @@ static void pSeries_cause_ipi_mux(int cpu, unsigned long 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)) {
                xics_cause_ipi = smp_ops->cause_ipi;
                smp_ops->cause_ipi = pSeries_cause_ipi_mux;
        }
-
-       return ret;
 }
 
 static struct smp_ops_t pSeries_mpic_smp_ops = {
index fb19084c586047cac03dfbb21dde3e5b240be92e..b2b8447a227a34a73d7f3746a3d9e74a5e5d2616 100644 (file)
@@ -1897,7 +1897,7 @@ void smp_mpic_message_pass(int cpu, int msg)
                       msg * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE), physmask);
 }
 
-int __init smp_mpic_probe(void)
+void __init smp_mpic_probe(void)
 {
        int nr_cpus;
 
@@ -1909,8 +1909,6 @@ int __init smp_mpic_probe(void)
 
        if (nr_cpus > 1)
                mpic_request_ipis();
-
-       return nr_cpus;
 }
 
 void smp_mpic_setup_cpu(int cpu)
index 125743b58c7097504a0f709f6bbff179c2553cf9..878a54036a25cbff2f49c6036b3651a8173e348b 100644 (file)
@@ -140,15 +140,13 @@ static void xics_request_ipi(void)
                           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 */
        smp_ops->cause_ipi = icp_ops->cause_ipi;
 
        /* Register all the IPIs */
        xics_request_ipi();
-
-       return num_possible_cpus();
 }
 
 #endif /* CONFIG_SMP */