|
@@ -109,10 +109,9 @@ int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)
|
|
spin_lock_irqsave(&desc->lock, flags);
|
|
spin_lock_irqsave(&desc->lock, flags);
|
|
|
|
|
|
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
|
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
|
- if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) {
|
|
|
|
- cpumask_copy(desc->affinity, cpumask);
|
|
|
|
|
|
+ if (desc->status & IRQ_MOVE_PCNTXT)
|
|
desc->chip->set_affinity(irq, cpumask);
|
|
desc->chip->set_affinity(irq, cpumask);
|
|
- } else {
|
|
|
|
|
|
+ else {
|
|
desc->status |= IRQ_MOVE_PENDING;
|
|
desc->status |= IRQ_MOVE_PENDING;
|
|
cpumask_copy(desc->pending_mask, cpumask);
|
|
cpumask_copy(desc->pending_mask, cpumask);
|
|
}
|
|
}
|