diff options
author | Lee Jones <lee.jones@linaro.org> | 2012-01-05 14:07:23 +0000 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2012-01-05 14:07:23 +0000 |
commit | be8c8cd142a9bdae45b0bb6d4c384104f380f7c5 (patch) | |
tree | fdadce46d5a958c8e03e2aa48f6106af8ffde3e2 /kernel/irq/chip.c | |
parent | 16dacd4f416b90d80a25c41399509d3e1846d1b7 (diff) | |
parent | 664b261057869dedc9a9c83fc709936657501614 (diff) |
Merge branch 'tracking-igloo_kernel-core' into merge-integration-linux-ux500
Diffstat (limited to 'kernel/irq/chip.c')
-rw-r--r-- | kernel/irq/chip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index f7c543a801d..7b35e039a26 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -262,7 +262,7 @@ void handle_nested_irq(unsigned int irq) { struct irq_desc *desc = irq_to_desc(irq); struct irqaction *action; - irqreturn_t action_ret; + irqreturn_t action_ret = IRQ_NONE; might_sleep(); @@ -277,7 +277,11 @@ void handle_nested_irq(unsigned int irq) irqd_set(&desc->irq_data, IRQD_IRQ_INPROGRESS); raw_spin_unlock_irq(&desc->lock); - action_ret = action->thread_fn(action->irq, action->dev_id); + do { + action_ret |= action->thread_fn(action->irq, action->dev_id); + action = action->next; + } while (action); + if (!noirqdebug) note_interrupt(irq, desc, action_ret); |