diff options
| -rw-r--r-- | kernel/irq/manage.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 88657d7bc9dd..27a1fe028afb 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
| @@ -1077,9 +1077,12 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) | |||
| 1077 | * set the trigger type must match. Also all must | 1077 | * set the trigger type must match. Also all must |
| 1078 | * agree on ONESHOT. | 1078 | * agree on ONESHOT. |
| 1079 | */ | 1079 | */ |
| 1080 | |||
| 1081 | #define IRQF_MISMATCH \ | ||
| 1082 | (IRQF_TRIGGER_MASK | IRQF_ONESHOT | IRQF_NO_SUSPEND) | ||
| 1083 | |||
| 1080 | if (!((old->flags & new->flags) & IRQF_SHARED) || | 1084 | if (!((old->flags & new->flags) & IRQF_SHARED) || |
| 1081 | ((old->flags ^ new->flags) & IRQF_TRIGGER_MASK) || | 1085 | ((old->flags ^ new->flags) & IRQF_MISMATCH)) |
| 1082 | ((old->flags ^ new->flags) & IRQF_ONESHOT)) | ||
| 1083 | goto mismatch; | 1086 | goto mismatch; |
| 1084 | 1087 | ||
| 1085 | /* All handlers must agree on per-cpuness */ | 1088 | /* All handlers must agree on per-cpuness */ |
