diff options
Diffstat (limited to 'drivers/sh')
-rw-r--r-- | drivers/sh/intc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c index a9174ec72853..559b5fe9dc0f 100644 --- a/drivers/sh/intc.c +++ b/drivers/sh/intc.c | |||
@@ -749,7 +749,7 @@ void __init register_intc_controller(struct intc_desc *desc) | |||
749 | 749 | ||
750 | irq_desc = irq_to_desc_alloc_node(irq, numa_node_id()); | 750 | irq_desc = irq_to_desc_alloc_node(irq, numa_node_id()); |
751 | if (unlikely(!irq_desc)) { | 751 | if (unlikely(!irq_desc)) { |
752 | printk(KERN_INFO "can not get irq_desc for %d\n", irq); | 752 | pr_info("can't get irq_desc for %d\n", irq); |
753 | continue; | 753 | continue; |
754 | } | 754 | } |
755 | 755 | ||
@@ -762,6 +762,17 @@ void __init register_intc_controller(struct intc_desc *desc) | |||
762 | if (vect->enum_id != vect2->enum_id) | 762 | if (vect->enum_id != vect2->enum_id) |
763 | continue; | 763 | continue; |
764 | 764 | ||
765 | /* | ||
766 | * In the case of multi-evt handling and sparse | ||
767 | * IRQ support, each vector still needs to have | ||
768 | * its own backing irq_desc. | ||
769 | */ | ||
770 | irq_desc = irq_to_desc_alloc_node(irq2, numa_node_id()); | ||
771 | if (unlikely(!irq_desc)) { | ||
772 | pr_info("can't get irq_desc for %d\n", irq2); | ||
773 | continue; | ||
774 | } | ||
775 | |||
765 | vect2->enum_id = 0; | 776 | vect2->enum_id = 0; |
766 | 777 | ||
767 | /* redirect this interrupts to the first one */ | 778 | /* redirect this interrupts to the first one */ |