|
@@ -410,11 +410,13 @@ void __init init_IRQ(void)
|
|
{
|
|
{
|
|
local_irq_disable(); /* PARANOID - should already be disabled */
|
|
local_irq_disable(); /* PARANOID - should already be disabled */
|
|
mtctl(~0UL, 23); /* EIRR : clear all pending external intr */
|
|
mtctl(~0UL, 23); /* EIRR : clear all pending external intr */
|
|
- claim_cpu_irqs();
|
|
|
|
#ifdef CONFIG_SMP
|
|
#ifdef CONFIG_SMP
|
|
- if (!cpu_eiem)
|
|
|
|
|
|
+ if (!cpu_eiem) {
|
|
|
|
+ claim_cpu_irqs();
|
|
cpu_eiem = EIEM_MASK(IPI_IRQ) | EIEM_MASK(TIMER_IRQ);
|
|
cpu_eiem = EIEM_MASK(IPI_IRQ) | EIEM_MASK(TIMER_IRQ);
|
|
|
|
+ }
|
|
#else
|
|
#else
|
|
|
|
+ claim_cpu_irqs();
|
|
cpu_eiem = EIEM_MASK(TIMER_IRQ);
|
|
cpu_eiem = EIEM_MASK(TIMER_IRQ);
|
|
#endif
|
|
#endif
|
|
set_eiem(cpu_eiem); /* EIEM : enable all external intr */
|
|
set_eiem(cpu_eiem); /* EIEM : enable all external intr */
|