summaryrefslogtreecommitdiff
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-03-09 08:42:00 +0100
committerTakashi Iwai <tiwai@suse.de>2015-03-09 08:42:00 +0100
commit4aa01c408b7022c620241b373d4c3707a2ebeab6 (patch)
tree25df2a7453ec3bf7fc82f2871756b4efd6d3d283 /kernel/irq/manage.c
parent5371fc0ecdf55b6811ade8a198de8ace2f4e5861 (diff)
parenta1f3f1ca66bd12c339b17a0c2ef93a093f90a277 (diff)
Merge branch 'for-linus' into for-next
Merging the HD-audio fixes back to base devel branch for further working on it.
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 196a06fbc122..886d09e691d5 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1474,8 +1474,13 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler,
* otherwise we'll have trouble later trying to figure out
* which interrupt is which (messes up the interrupt freeing
* logic etc).
+ *
+ * Also IRQF_COND_SUSPEND only makes sense for shared interrupts and
+ * it cannot be set along with IRQF_NO_SUSPEND.
*/
- if ((irqflags & IRQF_SHARED) && !dev_id)
+ if (((irqflags & IRQF_SHARED) && !dev_id) ||
+ (!(irqflags & IRQF_SHARED) && (irqflags & IRQF_COND_SUSPEND)) ||
+ ((irqflags & IRQF_NO_SUSPEND) && (irqflags & IRQF_COND_SUSPEND)))
return -EINVAL;
desc = irq_to_desc(irq);