diff --git a/[refs] b/[refs] index 39a5c7971f5a..43686e551f3d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2f6dafc5fcbf3fddce345c47da1f277a156fe22a +refs/heads/master: 1279b7f1168ad6a2606191090f8a96eba64766a4 diff --git a/trunk/drivers/sh/intc.c b/trunk/drivers/sh/intc.c index a9174ec72853..559b5fe9dc0f 100644 --- a/trunk/drivers/sh/intc.c +++ b/trunk/drivers/sh/intc.c @@ -749,7 +749,7 @@ void __init register_intc_controller(struct intc_desc *desc) irq_desc = irq_to_desc_alloc_node(irq, numa_node_id()); if (unlikely(!irq_desc)) { - printk(KERN_INFO "can not get irq_desc for %d\n", irq); + pr_info("can't get irq_desc for %d\n", irq); continue; } @@ -762,6 +762,17 @@ void __init register_intc_controller(struct intc_desc *desc) if (vect->enum_id != vect2->enum_id) continue; + /* + * In the case of multi-evt handling and sparse + * IRQ support, each vector still needs to have + * its own backing irq_desc. + */ + irq_desc = irq_to_desc_alloc_node(irq2, numa_node_id()); + if (unlikely(!irq_desc)) { + pr_info("can't get irq_desc for %d\n", irq2); + continue; + } + vect2->enum_id = 0; /* redirect this interrupts to the first one */