diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-03-07 21:50:37 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-01 00:37:29 -0400 |
commit | d72944457bb7d5c4be43aa1b741cb93c69484c20 (patch) | |
tree | 637f0b44106a44e4cc56cd45c3de9ef172f4bb4f /arch/powerpc | |
parent | 65e646ac509ff45e9f35e7fc1fea0d2b6723679f (diff) |
powerpc/smp: Add a smp_ops->bringup_up() done callback
This allows us to stop abusing smp_ops->setup_cpu() for cleanup
tasks that have to take place after the initial boot time CPU
bringup.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/machdep.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/smp.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h index 578d3309e109..e4f01915fbb0 100644 --- a/arch/powerpc/include/asm/machdep.h +++ b/arch/powerpc/include/asm/machdep.h | |||
@@ -35,6 +35,7 @@ struct smp_ops_t { | |||
35 | int (*probe)(void); | 35 | int (*probe)(void); |
36 | void (*kick_cpu)(int nr); | 36 | void (*kick_cpu)(int nr); |
37 | void (*setup_cpu)(int nr); | 37 | void (*setup_cpu)(int nr); |
38 | void (*bringup_done)(void); | ||
38 | void (*take_timebase)(void); | 39 | void (*take_timebase)(void); |
39 | void (*give_timebase)(void); | 40 | void (*give_timebase)(void); |
40 | int (*cpu_disable)(void); | 41 | int (*cpu_disable)(void); |
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index f6cc5c19c6ac..df3739713edd 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -553,7 +553,11 @@ void __init smp_cpus_done(unsigned int max_cpus) | |||
553 | 553 | ||
554 | free_cpumask_var(old_mask); | 554 | free_cpumask_var(old_mask); |
555 | 555 | ||
556 | if (smp_ops && smp_ops->bringup_done) | ||
557 | smp_ops->bringup_done(); | ||
558 | |||
556 | dump_numa_cpu_topology(); | 559 | dump_numa_cpu_topology(); |
560 | |||
557 | } | 561 | } |
558 | 562 | ||
559 | int arch_sd_sibling_asym_packing(void) | 563 | int arch_sd_sibling_asym_packing(void) |