aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-06 19:22:17 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-02-19 06:58:12 -0500
commit1529866c63d789925de9b4250646d82d033e4b95 (patch)
tree3f5373e5729b7a7d24da7c294f908bca3f743ad2 /kernel
parent107781e72192067b95a7d373bfa460434a13c6ae (diff)
genirq: Use handle_irq_event() in handle_level_irq()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/irq/chip.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 809a03fe7e07..2d2ba4ace0ec 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -479,9 +479,6 @@ out_unlock:
479void 479void
480handle_level_irq(unsigned int irq, struct irq_desc *desc) 480handle_level_irq(unsigned int irq, struct irq_desc *desc)
481{ 481{
482 struct irqaction *action;
483 irqreturn_t action_ret;
484
485 raw_spin_lock(&desc->lock); 482 raw_spin_lock(&desc->lock);
486 mask_ack_irq(desc); 483 mask_ack_irq(desc);
487 484
@@ -496,19 +493,10 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc)
496 * If its disabled or no action available 493 * If its disabled or no action available
497 * keep it masked and get out of here 494 * keep it masked and get out of here
498 */ 495 */
499 action = desc->action; 496 if (unlikely(!desc->action || (desc->status & IRQ_DISABLED)))
500 if (unlikely(!action || (desc->status & IRQ_DISABLED)))
501 goto out_unlock; 497 goto out_unlock;
502 498
503 desc->status |= IRQ_INPROGRESS; 499 handle_irq_event(desc);
504 raw_spin_unlock(&desc->lock);
505
506 action_ret = handle_IRQ_event(irq, action);
507 if (!noirqdebug)
508 note_interrupt(irq, desc, action_ret);
509
510 raw_spin_lock(&desc->lock);
511 desc->status &= ~IRQ_INPROGRESS;
512 500
513 if (!(desc->status & (IRQ_DISABLED | IRQ_ONESHOT))) 501 if (!(desc->status & (IRQ_DISABLED | IRQ_ONESHOT)))
514 unmask_irq(desc); 502 unmask_irq(desc);