diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-08 10:38:00 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-08 10:38:21 -0500 |
commit | c9a443cdf7726ce8b78c3177c6ae601ce37292fc (patch) | |
tree | 4191db70a690b8eb7c86d8c3c10f827e4f2ab32a /kernel/irq/manage.c | |
parent | 285c1a2c3a5f84ce1c811ab4cb1f8a17466e1a06 (diff) | |
parent | dc5f219e88294b93009eef946251251ffffb6d60 (diff) |
Merge branch 'irq/for-xen' into irq/core
irq/for-xen contains new functionality to avoid Xen private irq
hackery. That branch has a single irq commit and is pulled by Xen to
base their new features on.
Merge it into irq/core as other patches modify the same code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 538fce2db51c..a06b9b6d6b57 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -359,8 +359,17 @@ EXPORT_SYMBOL(disable_irq); | |||
359 | 359 | ||
360 | void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume) | 360 | void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume) |
361 | { | 361 | { |
362 | if (resume) | 362 | if (resume) { |
363 | if (!(desc->status & IRQ_SUSPENDED)) { | ||
364 | if (!desc->action) | ||
365 | return; | ||
366 | if (!(desc->action->flags & IRQF_FORCE_RESUME)) | ||
367 | return; | ||
368 | /* Pretend that it got disabled ! */ | ||
369 | desc->depth++; | ||
370 | } | ||
363 | desc->status &= ~IRQ_SUSPENDED; | 371 | desc->status &= ~IRQ_SUSPENDED; |
372 | } | ||
364 | 373 | ||
365 | switch (desc->depth) { | 374 | switch (desc->depth) { |
366 | case 0: | 375 | case 0: |