From 7ffaa5accc6bae3b2bc8b29eb047fb1294fe390e Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Thu, 9 Aug 2012 12:59:40 +0900 Subject: [PATCH] --- yaml --- r: 321672 b: refs/heads/master c: 1026023705b0baa2b37df2a0d1da0022fc7b985e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/sh/intc/core.c | 27 +++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index bbb0916928d5..16d18576620c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 800fb3ddee2c50918d651fbd70515f1e38857305 +refs/heads/master: 1026023705b0baa2b37df2a0d1da0022fc7b985e diff --git a/trunk/drivers/sh/intc/core.c b/trunk/drivers/sh/intc/core.c index 2374468615ed..32c26d795ed0 100644 --- a/trunk/drivers/sh/intc/core.c +++ b/trunk/drivers/sh/intc/core.c @@ -324,8 +324,16 @@ int __init register_intc_controller(struct intc_desc *desc) res = irq_create_identity_mapping(d->domain, irq); if (unlikely(res)) { - pr_err("can't get irq_desc for %d\n", irq); - continue; + if (res == -EEXIST) { + res = irq_domain_associate(d->domain, irq, irq); + if (unlikely(res)) { + pr_err("domain association failure\n"); + continue; + } + } else { + pr_err("can't identity map IRQ %d\n", irq); + continue; + } } intc_irq_xlate_set(irq, vect->enum_id, d); @@ -345,8 +353,19 @@ int __init register_intc_controller(struct intc_desc *desc) */ res = irq_create_identity_mapping(d->domain, irq2); if (unlikely(res)) { - pr_err("can't get irq_desc for %d\n", irq2); - continue; + if (res == -EEXIST) { + res = irq_domain_associate(d->domain, + irq, irq); + if (unlikely(res)) { + pr_err("domain association " + "failure\n"); + continue; + } + } else { + pr_err("can't identity map IRQ %d\n", + irq); + continue; + } } vect2->enum_id = 0;