On 2024/5/14 6:01, Yury Norov wrote: > 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); It seems that mask is a pointer, shouldn't use "cpumask_equal"? > fallthrough; > case IRQ_SET_MASK_OK_NOCOPY: > irq_validate_effective_affinity(data);