From 2c1b477b184f762d56d4b4418874eecdeafb2191 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Wed, 3 Aug 2011 16:44:27 +0200 Subject: [PATCH] --- yaml --- r: 262398 b: refs/heads/master c: cc34321d5806b7919531a1d951bb6deb62c163c9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/s390/kernel/smp.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0a767fec344a..2fe0c272b4e9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 391c62feb1798b6d31bd88076eae649b091ad8bf +refs/heads/master: cc34321d5806b7919531a1d951bb6deb62c163c9 diff --git a/trunk/arch/s390/kernel/smp.c b/trunk/arch/s390/kernel/smp.c index 70f4b9604575..86371fdd68e7 100644 --- a/trunk/arch/s390/kernel/smp.c +++ b/trunk/arch/s390/kernel/smp.c @@ -473,7 +473,12 @@ int __cpuinit start_secondary(void *cpuvoid) S390_lowcore.restart_psw.addr = PSW_ADDR_AMODE | (unsigned long) psw_restart_int_handler; __ctl_set_bit(0, 28); /* Enable lowcore protection */ - /* Switch on interrupts */ + /* + * Wait until the cpu which brought this one up marked it + * active before enabling interrupts. + */ + while (!cpumask_test_cpu(smp_processor_id(), cpu_active_mask)) + cpu_relax(); local_irq_enable(); /* cpu_idle will call schedule for us */ cpu_idle();