|
@@ -155,10 +155,10 @@ static bool migrate_one_irq(struct irq_desc *desc)
|
|
|
}
|
|
|
|
|
|
c = irq_data_get_irq_chip(d);
|
|
|
- if (c->irq_set_affinity)
|
|
|
- c->irq_set_affinity(d, affinity, true);
|
|
|
- else
|
|
|
+ if (!c->irq_set_affinity)
|
|
|
pr_debug("IRQ%u: unable to set affinity\n", d->irq);
|
|
|
+ else if (c->irq_set_affinity(d, affinity, true) == IRQ_SET_MASK_OK && ret)
|
|
|
+ cpumask_copy(d->affinity, affinity);
|
|
|
|
|
|
return ret;
|
|
|
}
|