diff --git a/[refs] b/[refs] index c08fa62b4bf7..6cfcb998d6dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 57d5f66b86079efac5c9a7843cce2a9bcbe58fb8 +refs/heads/master: c642b8391cf8efc3622cc97329a0f46e7cbb70b8 diff --git a/trunk/kernel/irq/handle.c b/trunk/kernel/irq/handle.c index e391cbb1f566..dc335ad27525 100644 --- a/trunk/kernel/irq/handle.c +++ b/trunk/kernel/irq/handle.c @@ -178,9 +178,11 @@ fastcall unsigned int __do_IRQ(unsigned int irq) */ if (desc->chip->ack) desc->chip->ack(irq); - action_ret = handle_IRQ_event(irq, desc->action); - if (!noirqdebug) - note_interrupt(irq, desc, action_ret); + if (likely(!(desc->status & IRQ_DISABLED))) { + action_ret = handle_IRQ_event(irq, desc->action); + if (!noirqdebug) + note_interrupt(irq, desc, action_ret); + } desc->chip->end(irq); return 1; }