diff options
Diffstat (limited to 'kernel/irq')
-rw-r--r-- | kernel/irq/manage.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 5597c157442a..203a518b6f14 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -317,10 +317,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
317 | } | 317 | } |
318 | 318 | ||
319 | *p = new; | 319 | *p = new; |
320 | #if defined(CONFIG_IRQ_PER_CPU) | 320 | |
321 | if (new->flags & IRQF_PERCPU) | ||
322 | desc->status |= IRQ_PER_CPU; | ||
323 | #endif | ||
324 | /* Exclude IRQ from balancing */ | 321 | /* Exclude IRQ from balancing */ |
325 | if (new->flags & IRQF_NOBALANCING) | 322 | if (new->flags & IRQF_NOBALANCING) |
326 | desc->status |= IRQ_NO_BALANCING; | 323 | desc->status |= IRQ_NO_BALANCING; |
@@ -328,6 +325,11 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
328 | if (!shared) { | 325 | if (!shared) { |
329 | irq_chip_set_defaults(desc->chip); | 326 | irq_chip_set_defaults(desc->chip); |
330 | 327 | ||
328 | #if defined(CONFIG_IRQ_PER_CPU) | ||
329 | if (new->flags & IRQF_PERCPU) | ||
330 | desc->status |= IRQ_PER_CPU; | ||
331 | #endif | ||
332 | |||
331 | /* Setup the type (level, edge polarity) if configured: */ | 333 | /* Setup the type (level, edge polarity) if configured: */ |
332 | if (new->flags & IRQF_TRIGGER_MASK) { | 334 | if (new->flags & IRQF_TRIGGER_MASK) { |
333 | if (desc->chip && desc->chip->set_type) | 335 | if (desc->chip && desc->chip->set_type) |