Skip to content

Commit

Permalink
genirq: Use handle_irq_event() in handle_level_irq()
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner committed Feb 19, 2011
1 parent 107781e commit 1529866
Showing 1 changed file with 2 additions and 14 deletions.
16 changes: 2 additions & 14 deletions kernel/irq/chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,9 +479,6 @@ handle_simple_irq(unsigned int irq, struct irq_desc *desc)
void
handle_level_irq(unsigned int irq, struct irq_desc *desc)
{
struct irqaction *action;
irqreturn_t action_ret;

raw_spin_lock(&desc->lock);
mask_ack_irq(desc);

Expand All @@ -496,19 +493,10 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc)
* If its disabled or no action available
* keep it masked and get out of here
*/
action = desc->action;
if (unlikely(!action || (desc->status & IRQ_DISABLED)))
if (unlikely(!desc->action || (desc->status & IRQ_DISABLED)))
goto out_unlock;

desc->status |= IRQ_INPROGRESS;
raw_spin_unlock(&desc->lock);

action_ret = handle_IRQ_event(irq, action);
if (!noirqdebug)
note_interrupt(irq, desc, action_ret);

raw_spin_lock(&desc->lock);
desc->status &= ~IRQ_INPROGRESS;
handle_irq_event(desc);

if (!(desc->status & (IRQ_DISABLED | IRQ_ONESHOT)))
unmask_irq(desc);
Expand Down

0 comments on commit 1529866

Please sign in to comment.