Commit 7d4d6154 authored by Nathan Lynch's avatar Nathan Lynch Committed by Paul Mackerras

[PATCH] powerpc: avoid timer interrupt replay effect when onlining cpu

When a cpu is hotplug-onlined, if we don't set per_cpu(last_jiffy) to
something sane, timer_interrupt will execute its while loop for every
tick missed since the cpu was last online (or since the system was
booted, if we're adding a new cpu).  This can cause weird hangs, ssh
sessions dropping, and we can even go xmon if we take a global IPI at
the wrong time.
Signed-off-by: default avatarNathan Lynch <ntl@pobox.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 4dc43256
...@@ -540,6 +540,9 @@ int __devinit start_secondary(void *unused) ...@@ -540,6 +540,9 @@ int __devinit start_secondary(void *unused)
if (smp_ops->take_timebase) if (smp_ops->take_timebase)
smp_ops->take_timebase(); smp_ops->take_timebase();
if (system_state > SYSTEM_BOOTING)
per_cpu(last_jiffy, cpu) = get_tb();
spin_lock(&call_lock); spin_lock(&call_lock);
cpu_set(cpu, cpu_online_map); cpu_set(cpu, cpu_online_map);
spin_unlock(&call_lock); spin_unlock(&call_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment