|
@@ -471,10 +471,13 @@ static DEFINE_SPINLOCK(stop_lock);
|
|
*/
|
|
*/
|
|
static void ipi_cpu_stop(unsigned int cpu)
|
|
static void ipi_cpu_stop(unsigned int cpu)
|
|
{
|
|
{
|
|
- spin_lock(&stop_lock);
|
|
|
|
- printk(KERN_CRIT "CPU%u: stopping\n", cpu);
|
|
|
|
- dump_stack();
|
|
|
|
- spin_unlock(&stop_lock);
|
|
|
|
|
|
+ if (system_state == SYSTEM_BOOTING ||
|
|
|
|
+ system_state == SYSTEM_RUNNING) {
|
|
|
|
+ spin_lock(&stop_lock);
|
|
|
|
+ printk(KERN_CRIT "CPU%u: stopping\n", cpu);
|
|
|
|
+ dump_stack();
|
|
|
|
+ spin_unlock(&stop_lock);
|
|
|
|
+ }
|
|
|
|
|
|
set_cpu_online(cpu, false);
|
|
set_cpu_online(cpu, false);
|
|
|
|
|