diff options
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 9a99c471d470..056aa49698b4 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -865,12 +865,10 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) | |||
865 | goto mismatch; | 865 | goto mismatch; |
866 | } | 866 | } |
867 | 867 | ||
868 | #if defined(CONFIG_IRQ_PER_CPU) | ||
869 | /* All handlers must agree on per-cpuness */ | 868 | /* All handlers must agree on per-cpuness */ |
870 | if ((old->flags & IRQF_PERCPU) != | 869 | if ((old->flags & IRQF_PERCPU) != |
871 | (new->flags & IRQF_PERCPU)) | 870 | (new->flags & IRQF_PERCPU)) |
872 | goto mismatch; | 871 | goto mismatch; |
873 | #endif | ||
874 | 872 | ||
875 | /* add new interrupt at end of irq queue */ | 873 | /* add new interrupt at end of irq queue */ |
876 | do { | 874 | do { |
@@ -894,15 +892,14 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) | |||
894 | goto out_mask; | 892 | goto out_mask; |
895 | } else | 893 | } else |
896 | compat_irq_chip_set_default_handler(desc); | 894 | compat_irq_chip_set_default_handler(desc); |
897 | #if defined(CONFIG_IRQ_PER_CPU) | ||
898 | if (new->flags & IRQF_PERCPU) | ||
899 | desc->status |= IRQ_PER_CPU; | ||
900 | #endif | ||
901 | 895 | ||
902 | desc->istate &= ~(IRQS_AUTODETECT | IRQS_SPURIOUS_DISABLED | \ | 896 | desc->istate &= ~(IRQS_AUTODETECT | IRQS_SPURIOUS_DISABLED | \ |
903 | IRQS_INPROGRESS | IRQS_ONESHOT | \ | 897 | IRQS_INPROGRESS | IRQS_ONESHOT | \ |
904 | IRQS_WAITING); | 898 | IRQS_WAITING); |
905 | 899 | ||
900 | if (new->flags & IRQF_PERCPU) | ||
901 | desc->status |= IRQ_PER_CPU; | ||
902 | |||
906 | if (new->flags & IRQF_ONESHOT) | 903 | if (new->flags & IRQF_ONESHOT) |
907 | desc->istate |= IRQS_ONESHOT; | 904 | desc->istate |= IRQS_ONESHOT; |
908 | 905 | ||