diff options
author | David S. Miller <davem@davemloft.net> | 2011-02-15 15:04:07 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-15 15:04:07 -0800 |
commit | b62818e5ff78cab4daf04fc0c12f86475dbc4b69 (patch) | |
tree | 6fa6dbca48e203014da4a598ab442abc3f252739 /arch/sparc/kernel | |
parent | 711c71a092ccedf5e24cff25e577bfa0148fce66 (diff) | |
download | op-kernel-dev-b62818e5ff78cab4daf04fc0c12f86475dbc4b69.zip op-kernel-dev-b62818e5ff78cab4daf04fc0c12f86475dbc4b69.tar.gz |
sparc64: Fix NMI startup bug which also breaks perf.
Doing NMI startup as an early initcall doesn't work because we need
to have SMP started up by then.
So we'd only NMI startup one cpu, which causes perf PMU grab to
BUG because the nmi_active count isn't what it's supposed to be.
This also points out that we don't have proper CPU up/down notifiers
for the NMI code which will need to be fixed at some point.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r-- | arch/sparc/kernel/pcr.c | 2 | ||||
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c index ae96cf5..7c2ced6 100644 --- a/arch/sparc/kernel/pcr.c +++ b/arch/sparc/kernel/pcr.c @@ -167,5 +167,3 @@ out_unregister: unregister_perf_hsvc(); return err; } - -early_initcall(pcr_arch_init); diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index b6a2b8f..555a76d 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c @@ -49,6 +49,7 @@ #include <asm/mdesc.h> #include <asm/ldc.h> #include <asm/hypervisor.h> +#include <asm/pcr.h> #include "cpumap.h" @@ -1358,6 +1359,7 @@ void __cpu_die(unsigned int cpu) void __init smp_cpus_done(unsigned int max_cpus) { + pcr_arch_init(); } void smp_send_reschedule(int cpu) |