diff options
Diffstat (limited to 'kernel/irq/migration.c')
| -rw-r--r-- | kernel/irq/migration.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index e05ad9be43b7..cfe767ca1545 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 1 | ||
| 2 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
| 3 | #include <linux/interrupt.h> | ||
| 4 | |||
| 5 | #include "internals.h" | ||
| 3 | 6 | ||
| 4 | void move_masked_irq(int irq) | 7 | void move_masked_irq(int irq) |
| 5 | { | 8 | { |
| @@ -39,11 +42,12 @@ void move_masked_irq(int irq) | |||
| 39 | * masking the irqs. | 42 | * masking the irqs. |
| 40 | */ | 43 | */ |
| 41 | if (likely(cpumask_any_and(desc->pending_mask, cpu_online_mask) | 44 | if (likely(cpumask_any_and(desc->pending_mask, cpu_online_mask) |
| 42 | < nr_cpu_ids)) { | 45 | < nr_cpu_ids)) |
| 43 | cpumask_and(desc->affinity, | 46 | if (!desc->chip->set_affinity(irq, desc->pending_mask)) { |
| 44 | desc->pending_mask, cpu_online_mask); | 47 | cpumask_copy(desc->affinity, desc->pending_mask); |
| 45 | desc->chip->set_affinity(irq, desc->affinity); | 48 | irq_set_thread_affinity(desc, desc->pending_mask); |
| 46 | } | 49 | } |
| 50 | |||
| 47 | cpumask_clear(desc->pending_mask); | 51 | cpumask_clear(desc->pending_mask); |
| 48 | } | 52 | } |
| 49 | 53 | ||
