summaryrefslogtreecommitdiffstats
path: root/kernel/irq/pm.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 20:33:19 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 20:33:19 -0700
commit471368557a734c6c486ee757952c902b36e7fd01 (patch)
treef192a77d2cb70b1d135e7be62418806e8c590a3e /kernel/irq/pm.c
parentcb60e3e65c1b96a4d6444a7a13dc7dd48bc15a2b (diff)
parente0d8ffd1df44518cb9ac9b1807d1f13cc100fc2f (diff)
downloadtalos-op-linux-471368557a734c6c486ee757952c902b36e7fd01.tar.gz
talos-op-linux-471368557a734c6c486ee757952c902b36e7fd01.zip
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/pm.c')
-rw-r--r--kernel/irq/pm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
index 15e53b1766a6..cb228bf21760 100644
--- a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -103,8 +103,13 @@ int check_wakeup_irqs(void)
int irq;
for_each_irq_desc(irq, desc) {
+ /*
+ * Only interrupts which are marked as wakeup source
+ * and have not been disabled before the suspend check
+ * can abort suspend.
+ */
if (irqd_is_wakeup_set(&desc->irq_data)) {
- if (desc->istate & IRQS_PENDING)
+ if (desc->depth == 1 && desc->istate & IRQS_PENDING)
return -EBUSY;
continue;
}
OpenPOWER on IntegriCloud