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, 18 Oct 2013 14:45:45 +0000 (07:45 -0700)
commit98f745546bd27e54fe0bed1e9c900301428de9d5
tree954a975a57fb9a5bd94ea02877de6c8f5199169c
parent8a229aeadcf9cf6616e56b00babc86607a3b3d1d
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