Messages in this thread Patch in this message | | | Date | Sat, 1 Oct 2011 09:01:10 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL, v2] irq fixes |
| |
* Thomas Gleixner <tglx@linutronix.de> wrote:
> > git://tesla.tglx.de/git/linux-2.6-tip irq-urgent-for-linus > > might actually work
Erm, indeed korg is down so that URI won't work, silly me.
Linus, here's the updated pull request:
Please pull the latest irq-urgent-for-linus git tree from:
git://tesla.tglx.de/git/linux-2.6-tip.git irq-urgent-for-linus
Thanks,
Ingo
------------------> Rob Herring (2): irq: Add declaration of irq_domain_simple_ops to irqdomain.h irq: Fix check for already initialized irq_domain in irq_domain_add
include/linux/irqdomain.h | 1 + kernel/irq/irqdomain.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index e807ad6..3ad553e 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -80,6 +80,7 @@ extern void irq_domain_del(struct irq_domain *domain); #endif /* CONFIG_IRQ_DOMAIN */ #if defined(CONFIG_IRQ_DOMAIN) && defined(CONFIG_OF_IRQ) +extern struct irq_domain_ops irq_domain_simple_ops; extern void irq_domain_add_simple(struct device_node *controller, int irq_base); extern void irq_domain_generate_simple(const struct of_device_id *match, u64 phys_base, unsigned int irq_start); diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index d5828da..b57a377 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c @@ -29,7 +29,11 @@ void irq_domain_add(struct irq_domain *domain) */ for (hwirq = 0; hwirq < domain->nr_irq; hwirq++) { d = irq_get_irq_data(irq_domain_to_irq(domain, hwirq)); - if (d || d->domain) { + if (!d) { + WARN(1, "error: assigning domain to non existant irq_desc"); + return; + } + if (d->domain) { /* things are broken; just report, don't clean up */ WARN(1, "error: irq_desc already assigned to a domain"); return;
| |