diff options
author | Kirill Tkhai <tkhai@yandex.ru> | 2013-12-12 14:41:01 +0100 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2014-01-14 21:12:41 +0100 |
commit | abf0ea65e0adede5f40a836e6af7f62e7c850546 (patch) | |
tree | 9728cc65de7b9b0954533ce06440ea960dfc7348 | |
parent | xtensa: ISS: raise network polling rate to 10 times/sec (diff) | |
download | linux-abf0ea65e0adede5f40a836e6af7f62e7c850546.tar.xz linux-abf0ea65e0adede5f40a836e6af7f62e7c850546.zip |
xtensa: Enable irqs after cpu is set online
there is a small possibility that wake_up of softirq thread
happens between local_irq_enable() and set_cpu_online(). In
this case affinity of the thread changes to fallback affinity
(i.e. CPU0). This may be a source of problems.
The patch kills that possibility.
Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r-- | arch/xtensa/kernel/smp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/smp.c b/arch/xtensa/kernel/smp.c index 1c7a209795e8..aa8bd8717927 100644 --- a/arch/xtensa/kernel/smp.c +++ b/arch/xtensa/kernel/smp.c @@ -151,9 +151,10 @@ void secondary_start_kernel(void) secondary_init_irq(); local_timer_setup(cpu); + set_cpu_online(cpu, true); + local_irq_enable(); - set_cpu_online(cpu, true); complete(&cpu_running); cpu_startup_entry(CPUHP_ONLINE); |