X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;ds=sidebyside;f=arch%2Farc%2Fkernel%2Fintc-compact.c;fp=arch%2Farc%2Fkernel%2Fintc-compact.c;h=06bcedf19b622b4ef26503660349bc07a8a52d2e;hb=e0868e6f673d0d2db6a3c3798605e6efb756e61e;hp=a1669cf2a277478fef9687f582e8bd289dcb1e44;hpb=3971cdc202f638f252e39316d42492ace04cc1b1;p=linux-2.6-microblaze.git diff --git a/arch/arc/kernel/intc-compact.c b/arch/arc/kernel/intc-compact.c index a1669cf2a277..06bcedf19b62 100644 --- a/arch/arc/kernel/intc-compact.c +++ b/arch/arc/kernel/intc-compact.c @@ -79,17 +79,16 @@ static struct irq_chip onchip_intc = { static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw) { - /* - * XXX: the IPI IRQ needs to be handled like TIMER too. However ARC core - * code doesn't own it (like TIMER0). ISS IDU / ezchip define it - * in platform header which can't be included here as it goes - * against multi-platform image philisophy - */ - if (irq == TIMER0_IRQ) + switch (irq) { + case TIMER0_IRQ: +#ifdef CONFIG_SMP + case IPI_IRQ: +#endif irq_set_chip_and_handler(irq, &onchip_intc, handle_percpu_irq); - else + break; + default: irq_set_chip_and_handler(irq, &onchip_intc, handle_level_irq); - + } return 0; }