summaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorKirill Tkhai <tkhai@yandex.ru>2013-12-12 15:09:50 +0100
committerDavid S. Miller <davem@davemloft.net>2014-01-05 02:55:19 +0100
commitce2521bf7d366a13e2ab3f9e1ff2084b145f4605 (patch)
tree110f8be52d40344047a2785a3a2d5e8daecb2903 /arch/sparc
parentsparc/PCI: Use dev_is_pci() to identify PCI devices (diff)
downloadlinux-ce2521bf7d366a13e2ab3f9e1ff2084b145f4605.tar.xz
linux-ce2521bf7d366a13e2ab3f9e1ff2084b145f4605.zip
sparc64: smp_callin: Enable irqs after preemption is disabled
Most of other architectures have below suggested order. So lets do the same to fit generic idle loop scheme better. Signed-off-by: Kirill Tkhai <tkhai@yandex.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/smp_64.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index b66a5338231e..b085311dcd0e 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -123,11 +123,12 @@ void smp_callin(void)
rmb();
set_cpu_online(cpuid, true);
- local_irq_enable();
/* idle thread is expected to have preempt disabled */
preempt_disable();
+ local_irq_enable();
+
cpu_startup_entry(CPUHP_ONLINE);
}