aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
authorLuis Henriques <henrix@sapo.pt>2009-04-01 13:06:35 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-23 02:45:48 -0400
commit6ce51c431019310ca03371355a4366c4649fa349 (patch)
tree8f081f9c6ce501833f105e3d1541f748d9614adc /kernel/irq/manage.c
parent833bb3046b6cb320e775ea2160ddca87d53260d5 (diff)
genirq: do not execute DEBUG_SHIRQ when irq setup failed
When requesting an IRQ, the DEBUG_SHIRQ code executes a fake IRQ just to make sure the driver is ready to receive an IRQ immediately. The problem was that this fake IRQ was being executed even if interrupt line failed to be allocated by __setup_irq. Signed-off-by: Luis Henriques <henrix@sapo.pt> LKML-Reference: <20090401170635.GA4392@hades.domain.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> [ fixed bug pointed out by a warning reported by Stephen Rothwell ] Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 1516ab77355c..8c68d5b95d48 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -768,7 +768,7 @@ int request_irq(unsigned int irq, irq_handler_t handler,
768 kfree(action); 768 kfree(action);
769 769
770#ifdef CONFIG_DEBUG_SHIRQ 770#ifdef CONFIG_DEBUG_SHIRQ
771 if (irqflags & IRQF_SHARED) { 771 if (!retval && (irqflags & IRQF_SHARED)) {
772 /* 772 /*
773 * It's a shared IRQ -- the driver ought to be prepared for it 773 * It's a shared IRQ -- the driver ought to be prepared for it
774 * to happen immediately, so let's make sure.... 774 * to happen immediately, so let's make sure....