|
@@ -1161,7 +1161,7 @@ __assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask)
|
|
|
int cpu, err;
|
|
|
cpumask_var_t tmp_mask;
|
|
|
|
|
|
- if ((cfg->move_in_progress) || cfg->move_cleanup_count)
|
|
|
+ if (cfg->move_in_progress)
|
|
|
return -EBUSY;
|
|
|
|
|
|
if (!alloc_cpumask_var(&tmp_mask, GFP_ATOMIC))
|
|
@@ -2234,14 +2234,10 @@ void send_cleanup_vector(struct irq_cfg *cfg)
|
|
|
|
|
|
if (unlikely(!alloc_cpumask_var(&cleanup_mask, GFP_ATOMIC))) {
|
|
|
unsigned int i;
|
|
|
- cfg->move_cleanup_count = 0;
|
|
|
- for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
|
|
|
- cfg->move_cleanup_count++;
|
|
|
for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
|
|
|
apic->send_IPI_mask(cpumask_of(i), IRQ_MOVE_CLEANUP_VECTOR);
|
|
|
} else {
|
|
|
cpumask_and(cleanup_mask, cfg->old_domain, cpu_online_mask);
|
|
|
- cfg->move_cleanup_count = cpumask_weight(cleanup_mask);
|
|
|
apic->send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR);
|
|
|
free_cpumask_var(cleanup_mask);
|
|
|
}
|
|
@@ -2430,8 +2426,6 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
|
|
|
|
|
|
cfg = irq_cfg(irq);
|
|
|
spin_lock(&desc->lock);
|
|
|
- if (!cfg->move_cleanup_count)
|
|
|
- goto unlock;
|
|
|
|
|
|
if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
|
|
|
goto unlock;
|
|
@@ -2449,7 +2443,6 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
|
|
|
goto unlock;
|
|
|
}
|
|
|
__get_cpu_var(vector_irq)[vector] = -1;
|
|
|
- cfg->move_cleanup_count--;
|
|
|
unlock:
|
|
|
spin_unlock(&desc->lock);
|
|
|
}
|