diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 9e9acb05b..2a26f0273 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -214,6 +214,8 @@ int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask, struct irq_chip *chip = irq_data_get_irq_chip(data); int ret; + /* IRQs only run on the first CPU in the affinity mask; reflect that */ + mask = cpumask_of(cpumask_first(mask)); ret = chip->irq_set_affinity(data, mask, force); switch (ret) { case IRQ_SET_MASK_OK: