Skip to contentSkip to conversation

irq fixes

GIT PULL Ingo Molnar 3 participants 4 messages Sep 30, 2011 – Oct 1, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Linus,

Please pull the latest irq-urgent-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/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(-)
include/linux/irqdomain.h +1 -0
index e807ad6..3ad553e 100644
@@ -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);
kernel/irq/irqdomain.c +5 -1
index d5828da..b57a377 100644
@@ -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;
#1 lore raw
Quoted 5 lines · Ingo Molnar

Linus,

Please pull the latest irq-urgent-for-linus git tree from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-urgent-for-linus

That would be a neat trick... Did you mean some other location? git.kernel.org still isn't back as far as I know.

josh

#2 lore raw
In reply to Ingo Molnar
Quoted 6 lines · Ingo Molnar

Linus,

Please pull the latest irq-urgent-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-urgent-for-linus

git://tesla.tglx.de/git/linux-2.6-tip irq-urgent-for-linus

might actually work

Thanks,

tglx

#3 lore raw
Quoted 4 lines · Thomas Gleixner

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(-)
include/linux/irqdomain.h +1 -0
index e807ad6..3ad553e 100644
@@ -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);
kernel/irq/irqdomain.c +5 -1
index d5828da..b57a377 100644
@@ -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;