|
@@ -317,10 +317,7 @@ int setup_irq(unsigned int irq, struct irqaction *new)
|
|
}
|
|
}
|
|
|
|
|
|
*p = new;
|
|
*p = new;
|
|
-#if defined(CONFIG_IRQ_PER_CPU)
|
|
|
|
- if (new->flags & IRQF_PERCPU)
|
|
|
|
- desc->status |= IRQ_PER_CPU;
|
|
|
|
-#endif
|
|
|
|
|
|
+
|
|
/* Exclude IRQ from balancing */
|
|
/* Exclude IRQ from balancing */
|
|
if (new->flags & IRQF_NOBALANCING)
|
|
if (new->flags & IRQF_NOBALANCING)
|
|
desc->status |= IRQ_NO_BALANCING;
|
|
desc->status |= IRQ_NO_BALANCING;
|
|
@@ -328,6 +325,11 @@ int setup_irq(unsigned int irq, struct irqaction *new)
|
|
if (!shared) {
|
|
if (!shared) {
|
|
irq_chip_set_defaults(desc->chip);
|
|
irq_chip_set_defaults(desc->chip);
|
|
|
|
|
|
|
|
+#if defined(CONFIG_IRQ_PER_CPU)
|
|
|
|
+ if (new->flags & IRQF_PERCPU)
|
|
|
|
+ desc->status |= IRQ_PER_CPU;
|
|
|
|
+#endif
|
|
|
|
+
|
|
/* Setup the type (level, edge polarity) if configured: */
|
|
/* Setup the type (level, edge polarity) if configured: */
|
|
if (new->flags & IRQF_TRIGGER_MASK) {
|
|
if (new->flags & IRQF_TRIGGER_MASK) {
|
|
if (desc->chip && desc->chip->set_type)
|
|
if (desc->chip && desc->chip->set_type)
|