ARC: SMP failed to boot due to missing IVT setup
authorNoam Camus <noamc@ezchip.com>
Thu, 12 Sep 2013 07:37:39 +0000 (13:07 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Sep 2013 00:21:22 +0000 (17:21 -0700)
commit4e96b8f08b2b67effc19b28bad73deec6c62248a
tree40b3540af28b170bd3808bcb10b668f34de92352
parent5c68732e7504d2e3745c272979c2eeddd7661e5a
ARC: SMP failed to boot due to missing IVT setup

commit c3567f8a359b7917dcffa442301f88ed0a75211f upstream.

Commit 05b016ecf5e7a "ARC: Setup Vector Table Base in early boot" moved
the Interrupt vector Table setup out of arc_init_IRQ() which is called
for all CPUs, to entry point of boot cpu only, breaking booting of others.

Fix by adding the same to entry point of non-boot CPUs too.

read_arc_build_cfg_regs() printing IVT Base Register didn't help the
casue since it prints a synthetic value if zero which is totally bogus,
so fix that to print the exact Register.

[vgupta: Remove the now stale comment from header of arc_init_IRQ and
also added the commentary for halt-on-reset]

Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Noam Camus <noamc@ezchip.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arc/include/asm/sections.h
arch/arc/kernel/head.S
arch/arc/kernel/irq.c
arch/arc/kernel/setup.c