|
@@ -38,7 +38,6 @@
|
|
#include <asm/cputable.h>
|
|
#include <asm/cputable.h>
|
|
#include <asm/firmware.h>
|
|
#include <asm/firmware.h>
|
|
#include <asm/rtas.h>
|
|
#include <asm/rtas.h>
|
|
-#include <asm/mpic.h>
|
|
|
|
#include <asm/vdso_datapage.h>
|
|
#include <asm/vdso_datapage.h>
|
|
#include <asm/cputhreads.h>
|
|
#include <asm/cputhreads.h>
|
|
#include <asm/xics.h>
|
|
#include <asm/xics.h>
|
|
@@ -140,7 +139,7 @@ out:
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
-static void smp_xics_setup_cpu(int cpu)
|
|
|
|
|
|
+static void smp_setup_cpu(int cpu)
|
|
{
|
|
{
|
|
if (cpu != boot_cpuid)
|
|
if (cpu != boot_cpuid)
|
|
xics_setup_cpu();
|
|
xics_setup_cpu();
|
|
@@ -207,28 +206,22 @@ static __init void pSeries_smp_probe(void)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static struct smp_ops_t pSeries_mpic_smp_ops = {
|
|
|
|
- .message_pass = smp_mpic_message_pass,
|
|
|
|
- .probe = smp_mpic_probe,
|
|
|
|
- .kick_cpu = smp_pSeries_kick_cpu,
|
|
|
|
- .setup_cpu = smp_mpic_setup_cpu,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct smp_ops_t pSeries_xics_smp_ops = {
|
|
|
|
|
|
+static struct smp_ops_t pseries_smp_ops = {
|
|
.message_pass = NULL, /* Use smp_muxed_ipi_message_pass */
|
|
.message_pass = NULL, /* Use smp_muxed_ipi_message_pass */
|
|
.cause_ipi = NULL, /* Filled at runtime by pSeries_smp_probe() */
|
|
.cause_ipi = NULL, /* Filled at runtime by pSeries_smp_probe() */
|
|
.probe = pSeries_smp_probe,
|
|
.probe = pSeries_smp_probe,
|
|
.kick_cpu = smp_pSeries_kick_cpu,
|
|
.kick_cpu = smp_pSeries_kick_cpu,
|
|
- .setup_cpu = smp_xics_setup_cpu,
|
|
|
|
|
|
+ .setup_cpu = smp_setup_cpu,
|
|
.cpu_bootable = smp_generic_cpu_bootable,
|
|
.cpu_bootable = smp_generic_cpu_bootable,
|
|
};
|
|
};
|
|
|
|
|
|
/* This is called very early */
|
|
/* This is called very early */
|
|
-static void __init smp_init_pseries(void)
|
|
|
|
|
|
+void __init smp_init_pseries(void)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
pr_debug(" -> smp_init_pSeries()\n");
|
|
pr_debug(" -> smp_init_pSeries()\n");
|
|
|
|
+ smp_ops = &pseries_smp_ops;
|
|
|
|
|
|
alloc_bootmem_cpumask_var(&of_spin_mask);
|
|
alloc_bootmem_cpumask_var(&of_spin_mask);
|
|
|
|
|
|
@@ -258,17 +251,3 @@ static void __init smp_init_pseries(void)
|
|
|
|
|
|
pr_debug(" <- smp_init_pSeries()\n");
|
|
pr_debug(" <- smp_init_pSeries()\n");
|
|
}
|
|
}
|
|
-
|
|
|
|
-void __init smp_init_pseries_mpic(void)
|
|
|
|
-{
|
|
|
|
- smp_ops = &pSeries_mpic_smp_ops;
|
|
|
|
-
|
|
|
|
- smp_init_pseries();
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void __init smp_init_pseries_xics(void)
|
|
|
|
-{
|
|
|
|
- smp_ops = &pSeries_xics_smp_ops;
|
|
|
|
-
|
|
|
|
- smp_init_pseries();
|
|
|
|
-}
|
|
|