If mask == desc->irq_common_data.affinity, copying one to another is useless, and we can just skip it. Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx> --- kernel/irq/manage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index bf9ae8a8686f..ad9ed9fdf919 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -285,7 +285,8 @@ int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask, switch (ret) { case IRQ_SET_MASK_OK: case IRQ_SET_MASK_OK_DONE: - cpumask_copy(desc->irq_common_data.affinity, mask); + if (desc->irq_common_data.affinity != mask) + cpumask_copy(desc->irq_common_data.affinity, mask); fallthrough; case IRQ_SET_MASK_OK_NOCOPY: irq_validate_effective_affinity(data); -- 2.40.1