On Mon, Sep 08 2025 at 17:31, Marc Zyngier wrote: > @@ -2564,13 +2566,14 @@ int request_percpu_nmi(unsigned int irq, irq_handler_t handler, > !irq_supports_nmi(desc)) > return -EINVAL; > > - /* The line cannot already be NMI */ > - if (irq_is_nmi(desc)) > + /* The line cannot be NMI already if the new request covers all CPUs */ > + if (irq_is_nmi(desc) && > + (!affinity || cpumask_equal(affinity, cpu_possible_mask))) > return -EINVAL; This check looks odd. What makes sure that the affinities do not overlap? Thanks, tglx