diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 20:33:19 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 20:33:19 -0700 |
commit | 471368557a734c6c486ee757952c902b36e7fd01 (patch) | |
tree | f192a77d2cb70b1d135e7be62418806e8c590a3e /kernel/irq/resend.c | |
parent | cb60e3e65c1b96a4d6444a7a13dc7dd48bc15a2b (diff) | |
parent | e0d8ffd1df44518cb9ac9b1807d1f13cc100fc2f (diff) | |
download | op-kernel-dev-471368557a734c6c486ee757952c902b36e7fd01.zip op-kernel-dev-471368557a734c6c486ee757952c902b36e7fd01.tar.gz |
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core irq changes from Ingo Molnar:
"A collection of small fixes."
By Thomas Gleixner
* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
hexagon: Remove select of not longer existing Kconfig switches
arm: Select core options instead of redefining them
genirq: Do not consider disabled wakeup irqs
genirq: Allow check_wakeup_irqs to notice level-triggered interrupts
genirq: Be more informative on irq type mismatch
genirq: Reject bogus threaded irq requests
genirq: Streamline irq_action
Diffstat (limited to 'kernel/irq/resend.c')
-rw-r--r-- | kernel/irq/resend.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c index 14dd576..6454db7 100644 --- a/kernel/irq/resend.c +++ b/kernel/irq/resend.c @@ -58,10 +58,13 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) /* * We do not resend level type interrupts. Level type * interrupts are resent by hardware when they are still - * active. + * active. Clear the pending bit so suspend/resume does not + * get confused. */ - if (irq_settings_is_level(desc)) + if (irq_settings_is_level(desc)) { + desc->istate &= ~IRQS_PENDING; return; + } if (desc->istate & IRQS_REPLAY) return; if (desc->istate & IRQS_PENDING) { |