diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 9cbe640df..0506e53f6 100755 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -267,6 +267,8 @@ int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask, else prog_mask = &tmp_mask; } else { + /* IRQs only run on the first CPU in the affinity mask */ + mask = cpumask_of(cpumask_first(mask)); prog_mask = mask; }