diff options
Diffstat (limited to 'arch/mips/kernel/irq-gic.c')
-rw-r--r-- | arch/mips/kernel/irq-gic.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c index c01b307317a9..5b5ddb231f26 100644 --- a/arch/mips/kernel/irq-gic.c +++ b/arch/mips/kernel/irq-gic.c | |||
@@ -219,16 +219,15 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask, | |||
219 | 219 | ||
220 | /* Assumption : cpumask refers to a single CPU */ | 220 | /* Assumption : cpumask refers to a single CPU */ |
221 | spin_lock_irqsave(&gic_lock, flags); | 221 | spin_lock_irqsave(&gic_lock, flags); |
222 | for (;;) { | ||
223 | /* Re-route this IRQ */ | ||
224 | GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp)); | ||
225 | 222 | ||
226 | /* Update the pcpu_masks */ | 223 | /* Re-route this IRQ */ |
227 | for (i = 0; i < NR_CPUS; i++) | 224 | GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp)); |
228 | clear_bit(irq, pcpu_masks[i].pcpu_mask); | 225 | |
229 | set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); | 226 | /* Update the pcpu_masks */ |
227 | for (i = 0; i < NR_CPUS; i++) | ||
228 | clear_bit(irq, pcpu_masks[i].pcpu_mask); | ||
229 | set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); | ||
230 | 230 | ||
231 | } | ||
232 | cpumask_copy(d->affinity, cpumask); | 231 | cpumask_copy(d->affinity, cpumask); |
233 | spin_unlock_irqrestore(&gic_lock, flags); | 232 | spin_unlock_irqrestore(&gic_lock, flags); |
234 | 233 | ||